将功能应用于图像的每个像素

Apply function to each pixel of the image

本文关键字:像素 图像 功能 应用于      更新时间:2023-10-16

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

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

如果性能是一个问题,则以下链接可能会引起您的关注:

  • 如何扫描图像
  • LUT功能的文档

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

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

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

但仍然是一个循环。


编辑:如果要将通用的几何转换应用于图像。

,可以使用remap