使用一张图片为另一张图片添加阈值

时间:2017-10-25 20:25:19

标签: c++ opencv threshold

我需要以非常具体的方式对图像应用阈值,所以我来到这里看看是否可能。

假设我有两张图片:一张源图片和一张图片。我想要的是采取源图像并使用阈值图像来过滤它。该操作将源图像的每个像素与阈值图像进行比较。我的像素是相同或更高的亮度,它会将其设置为白色。如果像素小于亮度,则将其设置为黑色。

以下是阈值图像的示例:

enter image description here

如果我可以澄清自己,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

一个简单的matrix expression将在这里完成工作。

  

这是一个已实现的矩阵运算列表,可以在任意复杂表达式中进行组合(此处AB代表矩阵(Mat),s表示标量(Scalar),alpha表示实值标量(double):

     

...

     

比较:A cmpop BA cmpop alphaalpha cmpop Acmpop之一是:>>===!=<=<。比较结果是一个8位单通道掩码,其元素设置为255(如果特定元素或元素对满足条件)或0。

因此,像下面的单行一样简单的事情可以满足您的要求:

cv::Mat result(source >= threshold);