在opencv / c ++中对应两个图像之间的值

时间:2013-11-04 07:44:07

标签: c++ opencv image-processing

我是图像处理和opencv的新手。我有两张照片。我想在图像2中找到与图像1对应的值,然后显示它。 opencv中是否有任何函数可以在图像之间找到对应的值?

提前感谢。

3 个答案:

答案 0 :(得分:4)

Mat corrVals;
bitwise_and(image2, image1>0, corrVals);

image1> 0将创建值为0和255的临时二进制图像。您唯一需要的是在图像的像素之间执行AND操作,并将结果存储在某处。这是通过bitwise_and。

完成的

这类似于@Mailerdaimon建议的方法,但使用的操作便宜得多。

答案 1 :(得分:1)

您可以对image1进行阈值处理,使您想要的所有值均为1,其他值均为0

比使用image1的{​​{3}} image2

cv::multiply(image1, image2, result, scale, dtype)

这将返回image2中标记为image1的所有大于零的值的图片。

答案 2 :(得分:1)

不看你的照片很难说。这是计算机视觉中研究得很好的问题,OpenCV包含了几种算法。您正在查看的问题非常简单或非常困难,具体取决于:

  • 您的图片,是正常的图片吗?只是形状?二进制?
  • 图像上的位置是相应的像素
  • 你需要多快才能运行
  • 图像之间有多少变化,是否完全相同的像素值?
  • 有相机移动吗?
  • 是否存在照明变化?

您可以先查看OpenCV中的stereo matchingoptical flow