我正在尝试从先前存储的同一对象的轮廓中识别图像中的对象。
由于在特征检测方面遇到了很大的麻烦(我的对象似乎没有任何特征,至少不是全部),我使用matchShapes()函数获得了更好的结果,该函数显然使用了Hu矩。
当我找到我匹配的形状时,我通过比较它的主轴和x轴来获得它的旋转,根据这个答案:Find the orientation of an image
但是,这仅提供了-90度到90度之间的旋转。我需要知道物体是否旋转了180度。我提供了一些图片来进一步说明我的问题:


上面的两张图片显示了大致相同的角度,而它们应该相隔180度。有没有什么明显的方法来计算它们的全旋转?我是不是漏掉了什么?我尝试了一些老生常谈的方法,但它们都不够可靠。
如有任何帮助或建议,将不胜感激。谢谢!
发布于 2013-06-19 21:49:33
这个想法有点老生常谈,但会行得通的。使用matchShapes定位图像中的对象后,提取边界框,使用findContours函数,然后使用已知轮廓模板计算平方差之和。将对象旋转180度后执行相同的操作。给出差异总和最小的测试用例将是正确的方向。
https://stackoverflow.com/questions/17190175
复制相似问题