如何将绘制的矩形保持在相机移动的相同位置

时间:2014-08-14 20:39:40

标签: c++ opencv computer-vision augmented-reality

我有这个应用程序,在初始框架中绘制一个矩形。我想知道是否可以从下一帧开始将矩形作为图像的一部分。

例如在我的第一帧中,我会画出这样的东西,但有点暗 http://imgur.com/zACIiHJ

我希望它成为环境的一部分,以便下次我的相机访问该帧时,我应该看到一个矩形框。如何使用OpenCV做到这一点?

编辑:我的算法在第一帧中查找并绘制矩形。我试图将矩形保持在相机移动的相同位置,矩形不必总是在白板上。

2 个答案:

答案 0 :(得分:0)

你想要实现的目标是可能的,但它需要你做一些研究和工作。解决问题的一种可能方法是使用光流(http://en.wikipedia.org/wiki/Optical_flow)分析来监控摄像机视图中物体的明显运动。您可以使用生成的光流场来应用"校正"到每个框架之间的矩形角的位置。以下是OpenCV文档的光流功能链接:

http://docs.opencv.org/modules/gpu/doc/video.html

如果您使用的特定设备具有陀螺仪和gps / ins,您也可以使用此数据来补充光流数据。让我知道它是怎么回事,听起来像一个非常有趣的项目!

答案 1 :(得分:0)

你需要一个静态矩形,它与 图像中的内容无关?只需在捕获的每个帧上绘制一个矩形。

    Rect r = Rect( .. );
    rectangle( imageFromCam, r, Scalar( .. ) );

cv::rectangle( )

Rect