OpenCV中的旋转和缩放不变模板匹配

7

可能是重复:
缩放和旋转模板匹配

我有一个带有白色背景和黑色形状的模板灰度图像。我还有几张类似的测试图像,它们在旋转和形状上有所变化。测试图像与模板不同,但它们很相似。

我想比较这两个图像,并查看模板是否与任何测试图像最相似。图像中没有扭曲、噪音或其他缺陷。这方面有什么教程吗?

2个回答

12

先尝试最简单的方法。

如果我理解你的意思正确,你有一个模型 - 在白色背景上呈现为黑色形状。你可以将其视为 blob(斑点)- 通过计算主轴角度找到它的质心和旋转 - 可以查看这里

然后,您必须从其他图像中分割出形状。接着使用matchShapes()函数尝试找到最佳匹配的形状 - 可以查看这里如何使用该函数。

matchShapes()函数可以进行比例和旋转不变的匹配。匹配结果越小越好。

扩展您的问题,您可以找到最佳匹配blob的质心和旋转,并找到模型与匹配图像之间的旋转、缩放和平移。


5

这是一个相当复杂的主题。通常,您有像广义Hough变换和标准化灰度相关性这样的选项来处理模板匹配。问题在于它们在最简单的形式中不具备尺度或旋转不变性。您需要集中精力解决一个问题,广义解决方案很复杂。我建议先进行简单的模板匹配,然后再添加旋转和尺度的“技巧”。对于旋转,您可以缩小比例(低分辨率匹配)并使用旋转模型进行模板匹配。这也可以解决尺度问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接