2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Python实现多张图片拼接

Python实现多张图片拼接

时间:2023-06-20 02:59:43

相关推荐

Python实现多张图片拼接

实现自动读取一个文件夹下所有的指定格式图片,按照指定行列个数拼接成大图。

输入样例:

输出样例:(这里未按顺序输出)

import cv2import glob as gbimport numpy as np"功能:将指定文件夹下所有的图片。每hangshu * lieshu 个图片组成一页,不够一页的输出到没有的那一行,不够一行的用空白代替""要求:所有图片尺寸一致""局限:glob.glob读取同一文件夹中数据读取默认并不按照顺序"img_path = gb.glob(r'./dataA/dataA1paiyang/*.jpg')# 读取目标文件夹下的所有指定格式图片# sorted(img_path, key = os.path.getctime) # 按生成时间排序# sorted(path, key = os.path.getsize) # 按尺寸排序img = [] # 用于记录所有的图片数据for pic_path in img_path:img.append(cv2.imread(pic_path, 1)) # 将所有数据读成np数据的列表, 注意cv2.imread读取的方式参数print("开始生成")pic_num = 0num_tu = 0hangshu = 10lieshu = 10bai = np.ones(img[0].shape) * 255 #while len(img) - pic_num: # 当拼接到的图片数量还没达到总图片数量hang_num = hangshuwhile hang_num and len(img) - pic_num:shu_num = lieshuwhile shu_num and len(img) - pic_num:if shu_num == lieshu:yihang = img[pic_num]else:yihang = np.hstack((yihang, img[pic_num])) # 横着拼接图片shu_num次pic_num += 1shu_num -= 1if len(img) - pic_num == 0:while shu_num:yihang = np.hstack((yihang, bai))shu_num -= 1if hang_num == hangshu:hangs = yihangelse:hangs = np.vstack((hangs, yihang)) # 每拼出一行就竖着拼接一次hang_num -= 1cv2.imwrite(f"A/A4{num_tu}.jpg", hangs) # 输出得到的多个行组成的图片,也就是一张图num_tu += 1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。