【问题标题】:correspond values between two images in opencv / c++opencv / c ++中两个图像之间的对应值
【发布时间】:2013-11-04 16:50:31
【问题描述】:

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

提前致谢。

【问题讨论】:

  • “对应值”到底是什么意思?两个图像中的相同 RGB 值?还是一样的结构?请告诉我们更多关于您的问题和/或在您的问题中添加示例图片。
  • 两张图片的值相同,都是灰度图。
  • 我有两张灰度图像。我想找到图像 2 中与图像 1 中的非零值相对应的所有值,然后我想显示它。
  • 只到非零值还是到相同的非零值?

标签: c++ opencv image-processing


【解决方案1】:
Mat corrVals;
bitwise_and(image2, image1>0, corrVals);

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

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

【讨论】:

    【解决方案2】:

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

    比你multiplyimage1image2

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

    这将从image2 返回一个所有值都大于零且标记在image1 中的图像。

    【讨论】:

      【解决方案3】:

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

      • 您的图片是普通图片吗?只是形状?二进制?
      • 图像上对应像素的位置
      • 您需要它以多快的速度运行
      • 图像之间的差异有多大,像素值是否完全相同?
      • 有摄像头移动吗?
      • 照明有变化吗?

      您可以从查看 OpenCV 中的 stereo matchingoptical flow 开始。

      【讨论】:

      • 感谢您的积分。实际上,我不确定我是否可以发布这些图像。我得先问问我的教授。我现在只能说我正在研究深度图像,我正在尝试找到一种方法来减少此类数据中的噪声。可以给我你的电子邮件地址吗?
      • 能否请您简单解释一下相机的移动如何影响选择合适的阈值?提前致谢。
      猜你喜欢
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2016-12-12
      • 2015-07-17
      • 2014-07-24
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      相关资源
      最近更新 更多