Opencv 当摄像机移动时,检测视频运动的最佳方法是什么?
当“我的相机”移动时,检测视频中物体运动(不包括相机的自我运动)的最佳方法是什么 我有实时50 FPS全高清1920x1080视频流。相机有自我运动 即我必须做:Opencv 当摄像机移动时,检测视频运动的最佳方法是什么?,opencv,opencv3.0,motion-detection,opticalflow,video-tracking,Opencv,Opencv3.0,Motion Detection,Opticalflow,Video Tracking,当“我的相机”移动时,检测视频中物体运动(不包括相机的自我运动)的最佳方法是什么 我有实时50 FPS全高清1920x1080视频流。相机有自我运动 即我必须做: 估计我的相机在第一帧和第二帧之间的运动(平移、缩放和旋转) 补偿我相机的此移动-反向移动第二帧 用于检测对象的运动-两帧之间的差异 什么是最好的方式(最快和最好的质量)来补偿我的相机的运动 -仅获取翻译,速度非常慢 -设计用于消除抖动和视频稳定的类 对于每一帧,计算(或)并获得仿射变换(平移、缩放和旋转),但对于高清实时视频来说速
- 估计我的相机在第一帧和第二帧之间的运动(平移、缩放和旋转)
- 补偿我相机的此移动-反向移动第二帧
- 用于检测对象的运动-两帧之间的差异
gpu::PyrLKOpticalFlow::sparse()
或gpu::PyrLKOpticalFlow::dense()
,然后gpu::meanShiftSegmentation()
以清晰的边界分隔不同的流,然后为每个段构建两个std::vector
,其中包含该段中点的源坐标(每5个像素)和目标坐标(从源计算和从步骤1计算),并尝试查找仿射变换Mat affine=cv::EstimaterialgidTransform(src_pts,dst_pts)
,并将每个仿射变换与每个Gibson的视觉流模式进行比较。还是有可能做得更好呢?最大的一部分流动——必须是相机的自我运动。其他-对象的移动。