17. 图像拼接cv2.Stitcher
import cv2
import numpy as np
# 设定要展示窗口的大小,一个窗口直接展示两张图片,一个窗口展示拼接之后的图片
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('img', 1500, 700)
cv2.namedWindow('img2', cv2.WINDOW_NORMAL)
cv2.resizeWindow('img2', 700, 545)
# 读取两张图片
left_img = cv2.imread('./images/left.jpg')
right_img = cv2.imread('./images/right.jpg')
# 展示两张图片水平放在一起(拼接前的效果)
print(left_img.shape)
print(right_img.shape)
cv2.imshow('img', np.hstack((left_img, right_img)))
# 使用cv2.Stitcher进行图片拼接
statcher = cv2.Stitcher_create(cv2.STITCHER_PANORAMA)
# Stitcher
images = [left_img, right_img]
(retval, pano) = statcher.stitch(images)
# retval = 0表示拼接成功
print('retval = ', retval)
# 这里对拼接后的图片变换大小
cv2.resize(pano, (700, 545), interpolation=cv2.INTER_AREA)
print(pano.shape)
# 展示拼接后的图片
cv2.imshow('img2', pano)
cv2.waitKey(0)
cv2.destroyAllWindows()
拼接原理,还不明白,后面再进行回顾。。。。