【发布时间】:2011-12-13 17:46:13
【问题描述】:
我想知道比较一组轮廓的最佳策略是什么,实际上是从两张图片中进行精明边缘检测的边缘,以便知道哪一对更相似。
我有这张图片:
http://i55.tinypic.com/10fe1y8.jpg
我想知道如何计算其中哪一个最适合它:
http://i56.tinypic.com/zmxd13.jpg
(应该是右边那个)
是否可以将轮廓作为一个整体进行比较? 我可以轻松地旋转图像,但我不知道使用什么函数来计算右侧的参考图像是最合适的。
这是我已经使用 opencv 尝试过的:
matchShapes 函数 - 我使用 2 个灰度图像尝试了这个函数,并且在每个比较图像中我总是得到相同的结果,并且该值似乎是错误的,因为它是 0,0002。
所以我意识到 matchShapes,但我不确定这是正确的假设,即该函数适用于成对的轮廓而不是完整的图像。现在这是一个问题,因为虽然我有要比较的图像的轮廓,但它们有数百个,我不知道应该“配对”哪些。
所以我还尝试通过 for 迭代将第一张图像的所有轮廓与其他两个进行比较,但我可能会比较,例如,5 的轮廓与圆形轮廓两个参考图像,而不是 2 轮廓。
还尝试了简单的 cv::compare 函数和 matchTemplate,都没有成功。
【问题讨论】: