Python实现多张图片拼接
生活随笔
收集整理的這篇文章主要介紹了
Python实现多张图片拼接
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
實(shí)現(xiàn)自動(dòng)讀取一個(gè)文件夾下所有的指定格式圖片,按照指定行列個(gè)數(shù)拼接成大圖。
輸入樣例:
輸出樣例:(這里未按順序輸出)
import cv2 import glob as gb import numpy as np"功能:將指定文件夾下所有的圖片。每hangshu * lieshu 個(gè)圖片組成一頁(yè),不夠一頁(yè)的輸出到?jīng)]有的那一行,不夠一行的用空白代替" "要求:所有圖片尺寸一致" "局限:glob.glob讀取同一文件夾中數(shù)據(jù)讀取默認(rèn)并不按照順序"img_path = gb.glob(r'./dataA/dataA1paiyang/*.jpg') # 讀取目標(biāo)文件夾下的所有指定格式圖片 # sorted(img_path, key = os.path.getctime) # 按生成時(shí)間排序 # sorted(path, key = os.path.getsize) # 按尺寸排序 img = [] # 用于記錄所有的圖片數(shù)據(jù) for pic_path in img_path:img.append(cv2.imread(pic_path, 1)) # 將所有數(shù)據(jù)讀成np數(shù)據(jù)的列表, 注意cv2.imread讀取的方式參數(shù)print("開(kāi)始生成") pic_num = 0 num_tu = 0 hangshu = 10 lieshu = 10 bai = np.ones(img[0].shape) * 255 # while len(img) - pic_num: # 當(dāng)拼接到的圖片數(shù)量還沒(méi)達(dá)到總圖片數(shù)量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) # 輸出得到的多個(gè)行組成的圖片,也就是一張圖num_tu += 1總結(jié)
以上是生活随笔為你收集整理的Python实现多张图片拼接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第11章 Go语言文件处理
- 下一篇: python 手机号码归属 ip地址查询