我希望了解比较一组轮廓的最佳策略,实际上是从两张图片中得到的Canny边缘检测结果,以便知道哪对更相似。
我有这张图片:
我有这张图片:
http://i55.tinypic.com/10fe1y8.jpg
我想知道如何计算哪一个最适合它:
http://i56.tinypic.com/zmxd13.jpg
(应该是右边的那个)
有没有办法将轮廓整体进行比较? 我可以很容易地旋转图像,但我不知道要使用哪些函数才能计算出右侧参考图像的最佳匹配。
这是我已经尝试过的opencv:
matchShapes函数 - 我尝试使用两个灰度图像进行此函数,并且在每次比较图像时都会得到相同的结果,而且该值似乎是错误的,因为它是0.0002。
因此,我意识到matchShapes的问题,但我不确定这是否是正确的假设,即该函数与轮廓对而不是完整图像一起工作。现在这是一个问题,因为虽然我有要比较的图像的轮廓,但它们有数百个,我不知道哪些应该“配对”。
所以我也尝试使用for迭代将第一个图像的所有轮廓与另外两个进行比较,但我可能正在比较例如5的轮廓与两个参考图像的圆形轮廓而不是2的轮廓。
还尝试了简单的cv :: compare函数和matchTemplate,但都没有成功。