openCV实战练习(4)——全景拼接

项目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)

猜你喜欢

转载自blog.csdn.net/Crabfishhhhh/article/details/129090905