在 opencv 或任何其他框架中有点新,我有一个来自静态相机的视频,我想从中创建一个全景图像。我确实尝试将视频分割成帧,然后将所有帧拼接在一起,但速度太慢了。还有其他解决方案吗?
2724 次
2 回答
3
OpenCV 中没有开箱即用的解决方案。
为了加快速度,您可以只拍摄每第 n 帧,并希望摄像师不要移动得太快。
您可能会尝试更深入地了解拼接线。我不知道您的视频,但您可以执行以下操作:
如果您的视频经常包含带有静态相机的部分,请尝试检查是否有移动。如果没有运动,你就不必缝合。要快速检测运动,请使用按比例缩小的帧,或仅帧的一个区域并匹配这些。
如果你知道运动的方向,你可以试着剪下你的形象的一部分。因此,如果相机向右移动,您可以剪切最左边的部分并仍然缝合,因为视频信息从帧到帧的变化应该很小。
tl;dr 没有简单的方法,深入了解拼接管道并根据您的源材料定制算法以获得加速
于 2014-05-26T07:55:40.213 回答
0
您可以通过使用 resize() 函数向下插值帧来将视频分割成小图像,并且一旦您拥有拼接的总图像,您就可以按相同的比率对其进行插值。
resize(input /* input image*/, result /*result image */, result.size()/*new dimensions*/, 0, 0, INTER_CUBIC/* interpolation method*/);
要了解更多插值方法,您可以查看此文档http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html#resize
甚至您可以定义图像的一个区域来检测相应的关键点
于 2014-06-03T15:13:52.707 回答