将函数应用于图像的每个像素

时间:2014-03-11 14:51:53

标签: c++ opencv image-processing

OpenCV中是否有一个采用输入矩阵,输出矩阵和函数的方法,并将此函数应用于每个像素?例如"检查像素值,如果它低于某个阈值,则将其设置为0,否则保持值"

我知道我可以在矩阵的像素上迭代并自己应用这个函数,只是想知道是否有一个函数可以让我省去这项工作。

2 个答案:

答案 0 :(得分:3)

如果需要考虑表现,您可能会对以下链接感兴趣:

如果使用灰度图像,则可以轻松创建合适的LUT。

答案 1 :(得分:1)

您可以像这样应用lambda函数(假设为灰度图像):

std::for_each(mat.begin<uchar>(), mat.end<uchar>()
              , [](uchar& pixel) {  
                     /* do something with pixel */ 
                });

但是,它实际上是一个循环。


修改:如果要对图像应用通用几何变换,可以使用remap