一、全景拼接原理
此次全景拼接使用RANSAC算法估计出图像间的单应性矩阵,然后将所有图像扭曲到一个公共的平面上。
由于我们所有的图像是由相机水平旋转拍摄的,因此我们可以将中心图像左右的区域填充为0,以便为扭曲的图像腾出空间。
RANSAC(Random Sample Consensus)算法是一种简单且有效的去除噪声影响,估计模型的一种方法。与普通的去噪算法不同,RANSAC算法是使用尽可能少的点来估计模型参数,然后尽可能的扩大得到的模型参数的影响范围。 由下图可以看到,该算法只选择了和直线一致的数据点,成功地找到了正确的解。
RANSAC详解:https://blog.youkuaiyun.com/vict_wang/article/details/81027730
二、不同场景的全景拼接
1.代码
仅适用于五张图片从左到右降序命名:
from pylab import *
from numpy import *
from PIL import Image
# If you have PCV installed, these imports should work
from PCV.geometry import homography, warp
from PCV.localdescriptors import sift
"""
This is the panorama example from section 3.3.
"""
# set paths to data folder
#featname = ['D:/data/Univ'+s