OpenCV(实战)全景拼接

目录

过程

1、导入主文件夹、子文件夹

2、获取子文件(图片),把图片放入图片列表

3、对图片列表中的图片进行缝合

总代码及效果


过程

概述:采用的多文件夹,子文件夹里面放的才是图片。

主文件夹:

 子文件夹1、2:

OpenCV(实战)全景拼接_第1张图片

1号文件夹: 

 OpenCV(实战)全景拼接_第2张图片

2号文件夹:

 OpenCV(实战)全景拼接_第3张图片

1、导入主文件夹、子文件夹

    # 主文件夹
    mainFolder = 'Scenes'
    # 子文件夹
    folders = os.listdir(mainFolder)
    print(folders)

2、获取子文件(图片),把图片放入图片列表

# 3、得到子文件(图片)
    for folder in folders:
        ImageList = []
        path = mainFolder + '/' + folder    #子文件夹路径
        Images = os.listdir(path)           #获取文件夹下的图片名称列表(List)

        # 得到图片
        for Img in Images:
            Image = cv2.imread(f'{path}/{Img}')     #图片     f:格式化字符串
            # 把图片放入图片列表
            ImageList.append(Image)

 依次遍历所有文件夹下的图片:

文件夹1:(只举一个例子)

OpenCV(实战)全景拼接_第4张图片

 OpenCV(实战)全景拼接_第5张图片

OpenCV(实战)全景拼接_第6张图片

 OpenCV(实战)全景拼接_第7张图片

 OpenCV(实战)全景拼接_第8张图片

中途犯得错误:(不同变量名称相同) :导致不论怎么搞都有错误,

 OpenCV(实战)全景拼接_第9张图片

3、对图片列表中的图片进行缝合

# 4、缝合图片
        stitcher = cv2.Stitcher.create()                #创建缝合器
        status, result = stitcher.stitch(ImageList)     #对图片列表进行缝合
        # 判断是否成功
        if status == cv2.STITCHER_OK:
            print('Success!')
            cv2.imshow('result', result)
            cv2.waitKey(5000)
        else:
            print('Error!')

总代码及效果

# 全景拼接
import cv2
import os


# 导入文件
def Import_Files():
    # 1、主文件夹
    mainFolder = 'Scenes'
    # 2、子文件夹
    folders = os.listdir(mainFolder)

    # 3、得到子文件(图片)
    for folder in folders:
        ImageList = []
        path = mainFolder + '/' + folder    #子文件夹路径
        Images = os.listdir(path)           #获取文件夹下的图片名称列表(List)

        # 得到图片
        for Img in Images:
            Image = cv2.imread(f'{path}/{Img}')     #图片     f:格式化字符串
            # 把图片放入图片列表
            ImageList.append(Image)

        # 4、缝合图片
        stitcher = cv2.Stitcher.create()                #创建缝合器
        status, result = stitcher.stitch(ImageList)     #对图片列表进行缝合
        # 判断是否成功
        if status == cv2.STITCHER_OK:
            print('Success!')
            cv2.imshow('result', result)
            cv2.waitKey(5000)
        else:
            print('Error!')


if __name__ == '__main__':
    Import_Files()          #导入文件

    cv2.waitKey(0)          #无限延时

文件夹1: 

OpenCV(实战)全景拼接_第10张图片

文件夹2: 

OpenCV(实战)全景拼接_第11张图片

你可能感兴趣的:(#,OpenCV,python,opencv,计算机视觉,人工智能,图像处理)