1

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

提前致谢。

4

3 回答 3

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

image1>0 将创建值为 0 和 255 的临时二进制图像。您唯一需要做的就是在图像的像素之间执行 AND 运算,并将结果存储在某处。这是由 bitwise_and 完成的。

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

于 2013-11-04T08:44:57.470 回答
1

不看你的照片很难说。这是计算机视觉中一个经过充分研究的问题,OpenCV 包含几个算法。您正在查看的问题可能非常简单或非常困难,具体取决于:

  • 你的图片,是正常的图片吗?只是形状?二进制?
  • 图像上对应的像素在哪里
  • 你需要它运行多快
  • 图像之间有多少变化,是完全相同的像素值吗?
  • 有摄像头移动吗?
  • 照明有变化吗?

您可以从查看OpenCV中的立体匹配光流开始。

于 2013-11-04T08:21:16.313 回答
1

您可以为 image1 设置阈值,以使您想要的所有值都是1,而其他所有值都是0

比你乘以 image1.image2

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

这将返回一个所有值都大于零的图像,image2其中标记为image1

于 2013-11-04T08:10:18.767 回答