用光流旋转物体?
Posted
技术标签:
【中文标题】用光流旋转物体?【英文标题】:rotating an object with opticalflow? 【发布时间】:2011-05-19 08:09:08 【问题描述】:我对 C++ 和 openframeworks 比较陌生。我开始使用 Lucas Kanade 技术来操作对象。我在推动物体方面取得了一些成功,但不幸的是,我无法弄清楚如何正确旋转它们,甚至无法检测到何时发生旋转运动。
有没有人想分享任何指示或提示?
非常感谢, 否
【问题讨论】:
【参考方案1】:光流计算本身并不能帮助您检测诸如“旋转运动”之类的东西。基本上,光流计算所做的只是逐个像素地查看变化,而旋转的意思是更大的像素变化聚合。一种算法需要检测诸如“对象边缘的所有像素都以(逆)顺时针方向流动”之类的东西。很难做到,而且我认为 OpenFrameworks 或 OpenCV 中没有任何东西可以帮助您。
您是否尝试检测图像中物体的旋转,或图像中会影响虚拟物体的旋转运动?如果是前者,我认为有 OpenCV 技术可以识别对象然后跟踪它们,包括旋转之类的东西。我认为要研究的东西就像“opencv object tracking”和“opencv object motion analysis”。
【讨论】:
我试图在图像中使用类似旋转的运动来影响虚拟对象。我想也许我会研究一下 opencv 的 camshift,谢谢。【参考方案2】:计算运动的 2x3 仿射变换矩阵可能是一种解决方案。仿射变换矩阵包含平移和旋转运动至缩放。如果您使用的是 OpenCV,那么 cv::getAffineTransform 就是您要查找的内容,您可以在其中直接输入跟踪的特征点。
【讨论】:
以上是关于用光流旋转物体?的主要内容,如果未能解决你的问题,请参考以下文章