Opencv Q&A_2 Stitcher/pyplot
2022/03/06
利用Stitcher进行图像全景拼接
代码
import cv2 as cv import os from matplotlib import pyplot as plt img = [] path = 'D:\work\\automation\Skill\Python\pythonWORK\cv\material\pano' folder = os.listdir(path) for file in folder: img_tem = cv.imread(path + '\\' + file) img_tem = cv.resize(img_tem,(0,0),None,0.5,0.5) #原图缩放太小可能导致拼接失败 img.append(img_tem) stitcher = cv.Stitcher.create(cv.Stitcher_PANORAMA) #创建对象 status, img_pano = stitcher.stitch(img) #输出:判断是否拼接成功,拼接结果 if status == cv.STITCHER_OK: for i in range(len(folder)): plt.subplot(1,len(folder)+1,i+1) plt.imshow(cv.cvtColor(img[i],cv.COLOR_BGR2RGB)) #pyplot颜色为BGR plt.axis('off') plt.show() plt.title('original') cv.imshow('img_pano',img_pano) cv.waitKey(0)
运行效果
图一 进行拼接的原图
图二 拼接完成的图
遇到的问题
Q1:有时拼接失败
A1:失败原因1:原图进行缩小时过于小导致信息丢失过多;失败原因2:原图裁剪重合区域过少。
Q2:其他函数
A2:
1:os.listdir():读取路径的文件夹内容,返回文件名列表。
2:pyplot展示图片过程:subplot放置位置,imshow设置展示图片,show全部展示。
pyplot函数读取图片默认BGR,需进行转换成RGB如:
plt.imshow(cv.cvtColor(img[i],cv.COLOR_BGR2RGB)) #pyplot颜色为BGR
消除坐标轴:
plt.axis('off')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通