stitcher类实现多图自动拼接

本文介绍了如何使用OpenCV库中的Stitcher类实现图像的自动拼接功能,通过给定一组图片路径,将它们合并成一张全景图。
摘要由CSDN通过智能技术生成

 效果展示

第一组: 

    

 第二组: 

    

第三组: 

 

第四组: 

      

运行代码



import os
import sys
import cv2
import numpy as np
  
 
def Stitch(imgs,savePath):  
    stitcher = cv2.Stitcher.create(cv2.Stitcher_PANORAMA)
    (result, pano) = stitcher.stitch(imgs)  
    if result != cv2.Stitcher_OK:
        print("不能拼接图片, error code = %d" % result)
        sys.exit(-1)
    output = os.path.join(savePath,stitch.jpg)
    cv2.imencode('.jpg',pano)[1].tofile(output)
    print("拼接成功)
 
 
if __name__ == "__main__":
    # 待拼接图片路径
    imgPath = r'xxxx/imgs'
    #拼好图片保存路径
    savePath=r'xxxx/imgs'
    imgList = os.listdir(imgPath)
    imgs = []
    for imgName in imgList:
        pathImg = os.path.join(imgPath, imgName)
        img=cv2.imdecode(np.fromfile(pathImg,dtype=np.uint8),flags=cv2.IMREAD_COLOR)
        imgs.append(img)    
    Stitch(imgs,savePath) 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值