opencv-python 全景图拼接

最近更新于 2022-05-16 13:21

全景图拼接是利用同一场景的多张图像通过重叠部分寻找匹配关系,从而生成整个场景图像的技术。本文的示例程序使用的是两张图片,更多图片方法类似,可先拼接两张图,再将拼接好的图和另外一张拼接,依次进行。对于两张图片的拼接过程,首先是分别提取各自图片具有的特征点,再对两图的特征点进行比对,其中的相同特征点的就是重叠部分,用作拼接的依据。

程序中使用到的特征提取方法来自于 contrib 库,并且有使用到专利算法,而 pip 安装的 opencv-contrib-python 并没有编译专利算法的支持(用于商业要收费的),如果要使用专利算法,就需要自己编译安装,参考:https://blog.iyatt.com/?p=1243。写本文时 SURF 还属于专利保护期内的算法,SIFT 专利已于 2020年3月7日到期,使用在此之前发布 opencv 版本,才需要编译安装 contrib 库。

测试环境:

Ubuntu 20.04 x86_64
Python 3.9.10
opencv-python 4.5.5.64
opencv-contrib-python 4.5.5.64
matplotlib 3.5.1
jupyter 1.0.0
numpy 1.22.3

本文资源文件下载:https://pan.baidu.com/s/1asffsL5U6pqCp5cDqX7TPg?pwd=l22s

程序运行效果如图:

opencv-python 全景图拼接
Scroll to top