我对 C++ 和开放框架相当陌生。我开始使用 Lucas Kanade 技术来操作对象。我在推动物体方面取得了一些成功,但不幸的是,我无法弄清楚如何正确旋转它们,甚至无法检测到何时发生旋转运动。
有没有人想分享任何指示或提示?
非常感谢,N
我对 C++ 和开放框架相当陌生。我开始使用 Lucas Kanade 技术来操作对象。我在推动物体方面取得了一些成功,但不幸的是,我无法弄清楚如何正确旋转它们,甚至无法检测到何时发生旋转运动。
有没有人想分享任何指示或提示?
非常感谢,N
光流计算本身并不能帮助您检测诸如“旋转运动”之类的东西。基本上,光流计算所做的就是逐个像素地查看变化,而旋转的意思是更大的像素变化聚合。一种算法需要检测诸如“对象边缘的所有像素都以(逆)顺时针方向流动”之类的东西。很难做到,而且我认为 OpenFrameworks 或 OpenCV 中没有任何东西可以帮助您。
您是在尝试检测图像中物体的旋转,还是图像中会影响虚拟物体的旋转运动?如果是前者,我认为有 OpenCV 技术可以识别对象然后跟踪它们,包括旋转之类的东西。我认为要研究的东西就像“opencv object tracking”和“opencv object motion analysis”。
计算运动的 2x3 仿射变换矩阵可能是一种解决方案。仿射变换矩阵包含平移和旋转运动至缩放。如果您使用的是 OpenCV,那么 cv::getAffineTransform 就是您要寻找的,您可以在其中直接输入跟踪的特征点。