Python实现多图像拼接融合的方法及代码是什么
Admin 2022-07-01 群英技术资讯 1328 次浏览
这篇文章主要讲解了“Python实现多图像拼接融合的方法及代码是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python实现多图像拼接融合的方法及代码是什么”吧!使用stitcher需要注意,图像太大会报错而且计算慢。
特点和适用范围:图像需有足够重合相同特征区域。
优点:适应部分倾斜/尺度变换和畸变情形,拼接效果好,使用简单,可以一次拼接多张图片。
缺点:需要有足够的相同特征区域进行匹配,速度较慢(和图像大小有关)。
原图(可下载)


代码(两张图片拼接)
import sys
import cv2
if __name__ == "__main__":
img1 = cv2.imread('C:/Users/Guaguan/Desktop/img/1.jpg') # 图片绝对路径,
img2 = cv2.imread('C:/Users/Guaguan/Desktop/img/2.jpg')
# stitcher = cv2.createStitcher(False) # 老的OpenCV版本,用这一个
stitcher = cv2.Stitcher.create(cv2.Stitcher_PANORAMA) # 我的是OpenCV4
(status, pano) = stitcher.stitch((img1, img2))
if status != cv2.Stitcher_OK:
print("不能拼接图片, error code = %d" % status)
sys.exit(-1)
print("拼接成功.")
cv2.imshow('pano', pano)
# cv2.imwrite("pano.jpg", pano)
cv2.waitKey(0)
拼接结果

原图



代码(多个图像自动拼接)
import os
import sys
import cv2
import win32ui
# ? python基于Stitcher图像拼接
def imgstitcher(imgs): # 传入图像数据 列表[] 实现图像拼接
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 = 'result' + '.png'
cv2.imwrite(output, pano)
print("拼接成功. %s 已保存!" % output)
if __name__ == "__main__":
# imgPath为图片所在的文件夹相对路径
imgPath = 'C:/Users/Guaguan/Desktop/img'
imgList = os.listdir(imgPath)
imgs = []
for imgName in imgList:
pathImg = os.path.join(imgPath, imgName)
img = cv2.imread(pathImg)
if img is None:
print("图片不能读取:" + imgName)
sys.exit(-1)
imgs.append(img)
imgstitcher(imgs) # 拼接
cv2.waitKey(0)
cv2.destroyAllWindows()
结果

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在使用电脑办公时,有时候不知道哪些软件或进程会占用大量的资源,导致进行其他任务时出现变慢、卡顿等现象。因此,实时监控系统的资源就变得非常重要。本文用Python编写了一款超治愈的RunCat监控应用系统,需要的可以参考一下
这篇文章我们来了解python序列的相关内容,下文将给大家介绍python序列的入门知识,包括序列的概念,序列的类型,序列的方法及特性等等,对新手学习和理解python序列有帮助,大家可以了解看看吗,接下来就跟随小编一起学习一下吧!
sqlite的官网 sqlite.org/index.html SQLite 作为一个SQL数据库引擎,是由C语言实现的,又小又快,具有高可靠性且功能齐全。 作为嵌入式数据库,在移动设备中使用非常广泛且方便。本文讲解如何使用python操作sqlite数据库
newLine()方法可用于输出一个换行字符"/n",下面这篇文章主要给大家介绍了关于python open函数中newline参数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
这篇文章给大家分享的是关于python实现德洛内三角剖分的内容,下文有实现代码以及生长算法实现点集的三角剖分的相关内容,感兴趣的朋友可以参考了解看看,希望大家阅读完这篇文章能有所收获。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008