一度分割した画像を再度結合したいのですが、結合する画像の数が多い時に下記のコードでは21行目から24行目の結合する部分の行数が多数になってしまうのでfor文などで何とか省略したいです。縦横の分割数は分かっています。
どなたかご教授願います。
import cv2 import glob import numpy as np from PIL import Image from natsort import natsorted # 所定のフォルダ内にある jpg ファイルを連続で読み込んでリスト化する files = glob.glob("./output/" + "/*.jpg") print(files) # 空のリストを準備 d = [] # natsortedで自然順(ファイル番号の小さい順)に1個づつ読み込む for i in natsorted(files): img = Image.open(i) # img は'JpegImageFile' object img = np.asarray(img) # np.asarrayで img を ndarray に変換 d.append(img) # d にappend で img を追加 print(d) # 画像の高さ方向と幅方向を結合 img_x = np.vstack((np.hstack(d[0:3]), np.hstack(d[3:6]), np.hstack(d[6:9]) )) # 色をBGR から RGB に変更 img_x = cv2.cvtColor(img_x, cv2.COLOR_BGR2RGB) cv2.imshow('img_after', img_x) cv2.imwrite('./result.jpg', img_x) cv2.waitKey(0) cv2.destroyAllWindows()
回答2件
あなたの回答
tips
プレビュー