如何保持一个绘制矩形在相同的地方,因为相机周围移动

How to keep a drawn rectangle in the same place as the camera moves around

本文关键字:因为 移动 周围 相机 何保持 一个 绘制      更新时间:2023-10-16

我有一个应用程序,其中在初始帧中绘制了一个矩形。我想知道是否有可能使矩形从下一帧开始成为图像的一部分。

例如,在我的第一帧,我会画这样的东西,但有点暗https://i.stack.imgur.com/enKCE.jpg

我想让它成为环境的一部分,这样下次我的相机进入那个帧时,我就会看到一个矩形框。如何使用OpenCV做到这一点?

编辑:我的算法在第一帧中找到并绘制矩形。我试图保持矩形在相同的地方,因为相机移动和矩形不需要总是在白板上。

你想要达到的目标是可能的,但这需要你自己做一些研究和工作。一个可能的解决方案,你的问题是使用光流(http://en.wikipedia.org/wiki/Optical_flow)分析,以监测物体的表观运动在你的相机视图。你可以使用得到的光流场对每一帧之间的矩形角的位置进行"校正"。这里是OpenCV文档中光流函数的链接:

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

如果您正在使用的特定设备具有陀螺仪和gps/ins,您也可以使用此数据来补充光流数据。让我知道进展如何,听起来真是一个有趣的项目!

您需要一个与图像中的无关的静态矩形吗?只要在你捕获的每一帧上画一个矩形。

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

简历:矩形()

矩形