将轮廓与水平图像匹配 - OpenCV

时间:2016-08-28 23:08:15

标签: c++ opencv

是否可以匹配&调整图像中的轮廓?可能是对称匹配?如果是这样,你会为此目的使用什么匹配器?

示范图片:

problem

在这张我可爱的iMac图片中,您可以看到传入的图像是不同的。这是因为我拍摄的第一张图像的高度与第二张图像不同。例如:

(First Image capture)
                        (Second Image capture)

因此,我想知道OpenCV是否有任何功能匹配器可以限制我匹配1个图像结束的边缘,而另一个图像结束的边缘,而不是匹配整个图像的特征。这样,我希望能够理顺它们。

我目前使用的是什么:

  • BestOf2NearestMatcher
  • GridAdaptedFeatureDetectorGFTTDetector
  • SiftDescriptorExtractor
  • 根据基本OpenCV样本的功能使用相机参数进行优化

我希望结果是什么:

我的目标结果是对齐上面演示图像中的图像。

1 个答案:

答案 0 :(得分:2)

我正在研究同样的问题。您可以使用一些掩码限制功能点。在我的情况下,我知道相邻图像中有50%的重叠,所以我在第一张图像的后半部分(x> im.cols)和第二张图像的初始一半使用了特征(x

但是当特征点较少或没有时,这将失败。如果对齐对象的边缘是主要问题,我建议采用基于线的拼接。

opencv3.0中的线路功能

http://docs.opencv.org/3.0-beta/modules/line_descriptor/doc/tutorial.html