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()

拼接原理,还不明白,后面再进行回顾。。。。

posted @ 2022-07-03 09:17  理舞  阅读(564)  评论(0编辑  收藏  举报