2012-05-17 215 views
2

我有两个相似的图像,一个是模板,另一个图像是通过摄像机拍摄的(因此受到旋转和倾斜)。我需要匹配模板图像和拍摄图像的轮廓。 opencv的matchShape函数是否足够?我担心的是,如果图像上有两个圆圈,它们可能具有相同的轮廓。我应该考虑轮廓的位置吗?比较轮廓

在此先感谢

+0

看看这个答案: http://stackoverflow.com/questions/10355015/how-to-compare-two-contours-of-a-binary-pattern-image/16365446#16365446 –

回答

1

在大多数情况下matchShapes()方法应该工作,因为它使用Hue moments这是不变的缩放,旋转和反射(7日除外)。

另一方面,如果你需要更具体的东西,你应该设计自己的错误最小化问题,就像变形模板中使用的那样。使用可变形模板的示例可在my thesis中找到。

+0

谢谢!我只是想问,如果我在图像上有两个圆圈(相同尺寸),它会检测到正确的圆圈吗? – MiuMiu

+0

如果圈子的位置对你很重要,你应该单独检查一下。 matchShapes()应该不变为圆的位置。 –

+0

你知道任何算法吗?我必须将这个位置放在模板图像上。再次感谢您的回复 – MiuMiu