我对C ++和openframeworks很陌生。我开始使用Lucas Kanade技术操纵对象。我在推动物体方面取得了一些成功,但遗憾的是我无法弄清楚如何正确地旋转它们,甚至无法检测到旋转运动是否正在发生。
有没有人想要分享任何指示或提示?
非常感谢, Ñ
答案 0 :(得分:0)
光流计算本身不会帮助您检测“旋转运动”之类的事情。基本上,所有光学流程计算正在做的是逐个像素地观察变化,而你所说的旋转意味着像素变化的更大集合。算法需要检测诸如“对象边缘上的所有像素都在(逆)顺时针方向流动”之类的东西。很难做到,我认为OpenFrameworks或OpenCV中没有任何东西可以帮助你。
您是在尝试检测图像中对象的旋转,还是图像中的旋转式运动会影响虚拟对象?如果它是前者,我认为有OpenCV技术用于识别对象然后跟踪它们,包括旋转等。我认为要研究的东西就像“opencv对象跟踪”和“opencv对象运动分析”。
答案 1 :(得分:0)
计算运动的2x3仿射变换矩阵可能是一种解决方案。仿射变换矩阵包括平移和旋转运动,直到缩放。如果您使用OpenCV而不是cv :: getAffineTransform,那么您可以在哪里直接输入跟踪的要素点。