项目Introduce:
通过os实现遍历文件夹中的图片后利用缝合器将照片缝合实现全景效果。
Opencv项目实战:04 全景图片拼接_夏天是冰红茶的博客-CSDN博客_mylist = os.listdir(path)
项目名称:
全景图片拼接
项目流程预览:
1.导入图片,读取主文件
2.用os.listdir(path)函数,遍历文件中的图片
3.用Opencv当中的Stitcher类,简短创建在其中一种缝合模式下配置的缝合器
4.用Stitcher类下的stitch函数,作用是返回状态代码和拼接结果。
5.检查返回状态是否正常
项目与知识衔接:
os、stitcher类
具体操作步骤以及代码:
1.创建主文件夹
导入库
import cv2
import os
2.遍历图片
mainFolder = 'image'
myFolders = os.listdir(mainFolder)
print(myFolders)
3.缝合
for folder in myFolders:
path = mainFolder + '/' + folder
images = []
myList = os.listdir(path)
print(f'Total number of images detected {len(myList)} ')
for imgN in myList:
curImg = cv2.imread(f'{path}/{imgN}')
curImg = cv2.resize(curImg,(0,0),None,0.2,0.2)
images.append(curImg)
stitcher = cv2.Stitcher.create()
(status,result) = stitcher.stitch(images)
if(status == cv2.STITCHER_OK):
print('Panorama Generated Successfully')
cv2.imshow(folder,result)
cv2.waitKey(1)
else :
print('Panorama Generation Unsuccessful')
cv2.waitKey(0)
4.展示结果
项目所需要的工具以及预设参数:
(image show)
实现结果展示:
(img show)
代码整体展示:
import cv2
import os
mainFolder = 'image'
myFolders = os.listdir(mainFolder)
print(myFolders)
for folder in myFolders:
path = mainFolder + '/' + folder
images = []
myList = os.listdir(path)
print(f'Total number of images detected {len(myList)} ')
for imgN in myList:
curImg = cv2.imread(f'{path}/{imgN}')
curImg = cv2.resize(curImg,(0,0),None,0.2,0.2)
images.append(curImg)
stitcher = cv2.Stitcher.create()
(status,result) = stitcher.stitch(images)
if(status == cv2.STITCHER_OK):
print('Panorama Generated Successfully')
cv2.imshow(folder,result)
cv2.waitKey(1)
else :
print('Panorama Generation Unsuccessful')
cv2.waitKey(0)