通过使用OpenCV手动标记相应点进行图像配准

时间:2013-04-16 14:44:02

标签: opencv image-processing affinetransform homography perspectivecamera

  1. 我有一个已处理的二进制图片 尺寸300x300 。该处理过的图像包含很少的对象(人或车辆)。
  2. processed binary image

    1. 我还有 dimensi 640x480 相同场景的另一个 RGB图像取自不同的位置
    2. enter image description here

      注意:两个相机不一样

      我可以使用背景减法在第一张图像中检测到某种程度的物体。 我想检测第二张图片中的相应对象。我通过了opencv函数

      所有这些功能都需要两个图像中的对应点(坐标)

      在第一个二进制图像中,我只有对象存在的信息,它没有与第二个图像(RGB)完全相似的特征。

      我认为传统的特征匹配确定可用于估计变换参数的相应控制点不可行因为我认为我无法确定和匹配二进制和RGB图像的特征(我是对的) ??)。

      如果我错了,我可以采取什么功能,我应该如何进行特征匹配,找到相应的点,估计转换参数。

      我尝试了更多手动标记来估算转换参数的解决方案(如果我错了请纠正我)

      注意:两台相机都没有移动。

      • 在已处理图像(二进制)中的对象周围手动标记矩形
      • 记下矩形的坐标
      • 在第二个RGB图像中的对象周围手动标记矩形
      • 记下矩形的坐标
      • 针对第一二进制和第二RGB图像的不同样本重复上述步骤

      现在我有大约20个对应点,我在函数中使用它们:

        

      findHomography(src_pts,dst_pts,0);

      所以一旦我在第一张图片中检测到一个物体,

      • 我在它周围画了一个边框,
      • 使用上面找到的转换
      • 转换顶点的坐标
      • 最后在第二个RGB图像中绘制一个框,其中已转换的坐标为顶点

        但是这并没有将第二个RGB图像中的框标记在人/物体上方。相反,它被绘制在其他地方。虽然我拍摄了几个二进制和RGB的样本图像并使用几个相应的点来估计变换参数,但似乎它们不够准确。

      CV_RANSAC和CV_LMEDS选项有什么含义,ransacReprojecThreshold以及如何使用它们?

      我的方法是否良好...我应该修改/做什么才能使注册准确?

      可以使用任何其他方法吗?

2 个答案:

答案 0 :(得分:0)

我自己是OpenCV的新手,但我的建议是:

  • 看到你在第一张图片中找到了对象,我不应该认为获取关键点和提取特征会很困难吗? (或许你已经有了这个?)
  • 识别第二张图片中的要素
  • 使用OpenCV FlannBasedMatcher或类似的
  • 匹配功能
  • 突出显示第二张图片中的匹配功能或您想要做的任何事情。

我希望因为第一张图片中的所有功能都应该是正片(你知道它们是你想要的功能),所以获得准确的匹配会相对简单。

就像我说的,我是新手,所以这些想法可能需要一些细化。

答案 1 :(得分:0)

回答这个可能有点晚了,提问者可能看不到这个,但如果第一张图片最初是灰度图像,那么可以这样做:

1。)第2张图片---->灰度------> gray2ndimg

2。)点对点对应b / w gray1stimg和gray2ndimg匹配特征。