0
  1. 我有一个尺寸为 300x300的已处理二进制图像。此处理后的图像包含很少的对象(人或车辆)。

处理过的二值图像

  1. 我还有另一个640x480 维度的相同场景的RGB 图像。它取自不同的位置

在此处输入图像描述

注意:两个相机不一样

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

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

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

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

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

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

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

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

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

findHomography(src_pts, dst_pts, 0) ;

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

  • 我在它周围画了一个边界框,

  • 使用上面找到的变换变换顶点的坐标,

  • 最后在第二个 RGB 图像中绘制一个框,转换后的坐标为顶点

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

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

我的方法好吗...我应该修改/做什么以使注册准确?

可以使用任何替代方法吗?

4

2 回答 2

0

我自己对 OpenCV 还很陌生,但我的建议是:

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

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

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

于 2013-04-23T09:48:27.303 回答
0

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

1.)第二张图像---->灰度 ------> gray2ndimg

2.) 通过匹配特征实现点对点的 b/w gray1stimg 和 gray2ndimg 对应。

于 2016-05-19T15:00:29.300 回答