4

我正在尝试从先前存储的同一对象的轮廓中识别图像中的对象。

在特征检测方面遇到了巨大的麻烦(我的对象似乎没有任何特征,至少不是所有特征),我使用 matchShapes() 函数获得了更好的结果,该函数显然使用了 Hu 矩。

当我找到匹配的形状时,我通过比较它的长轴和 x 轴来得到它的旋转,根据这个答案:Find the orientation of an image

但是,这只提供了 -90 到 90 度之间的旋转。我需要知道对象是否旋转了 180 度。我提供了一些图片来进一步说明我的问题:180度0度

上面两张图片显示的角度大致相同,它们应该相隔 180 度。有什么明显的方法可以计算它们的完整旋转吗?我在这里错过了什么吗?我尝试了一些 hacky 方法,但没有一个足够可靠。

任何帮助或建议将不胜感激。谢谢!

4

1 回答 1

0

这个想法很老套,但会奏效。使用 matchShapes 在图像中定位对象后,提取边界框,使用 findContours 函数,然后使用已知轮廓模板对平方差求和。将对象旋转 180 度后执行相同操作。为您提供最小差异总和的测试用例将是正确的方向。

于 2013-06-19T13:49:33.050 回答