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)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值