在opencv或任何其他框架中,我有一个来自静态相机的视频,我想用它来创建全景图像。我确实尝试过将视频分割成帧,然后将所有帧拼接在一起,但速度太慢。有没有其他的解决方案?
发布于 2014-05-26 15:55:40
在OpenCV中没有现成的解决方案。
为了加快速度,您可以每隔n帧拍摄一次,并希望摄影师不要移动得太快。
您可以尝试更深入地研究stitching pieline。我不知道你的视频,但你可以这样做:
如果你的视频经常有静止镜头的部分,试着检查是否有运动。如果没有运动,你就不需要缝针了。要快速检测移动,请使用帧的缩小版本,或仅使用帧的一个区域并进行匹配。
如果你知道移动的方向,你可以试着剪切你的图像的一部分。因此,如果摄像机向右移动,你可以剪切最左边的部分,并仍然缝合,因为视频信息在帧到帧之间的变化应该很小。
tl;dr不是一种简单的方法,深入研究缝合流水线并根据您的原始材料调整算法以获得加速。
发布于 2014-06-03 23:13:53
您可以通过使用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
您甚至可以定义图像的一个区域来检测相应的关键点
https://stackoverflow.com/questions/23856786
复制相似问题