一.实验目的:
基于多幅图像(3 幅及以上),运用基于 2D 特征的配准方法,制作全景图。
二.实验内容:
使用 OpenCV 库相应函数,实现全景图的制作。
三.实验代码:
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
images = [] #存储图像
#初始化图像信息
def init():
#读取图像
images.append(cv.imread('./image/img1.jpg'))
images.append(cv.imread('./image/img2.jpg'))
images.append(cv.imread('./image/img3.jpg'))
for i in range(3):
#将images中的图像在水平方向和垂直方向上都将图像缩小到原始大小的50%
#该操作有利于减少计算复杂度,提高拼接成功率
#dsize=None:表示不指定目标图像的大小,此参数为None意味着目标大小将由缩放因子fx和fy决定。
images[i] = cv.resize(src=images[i], dsize=None, fx=0.5, fy=0.5)
def stitching():
# Stitcher是OpenCV库中的一个类,用于进行图像拼接。
# 在此创建一个拼接对象,主要作用是将一系列的输入图像拼接成一个全景图。
stitcher = cv.Stitcher().create()
status, pano = stitcher.stitch(images)
if status == cv.STITCHER_OK: #如果能够拼接
plt.imshow(pano[:,:,::-1])
plt.show()
else:
print('拼接失败')
def main():
init()
stitching()
if __name__=='__main__':
main()
8365

被折叠的 条评论
为什么被折叠?



