フォルダに入っている画像を指定して、中にある画像を一括で分割できるようにしたいです。
下記の内容を実行しても、エラーメッセージも結果も出ない状況です。
解決方法がありましたら教えてください。
python
1import os 2# 画像分割 3 4import os 5import cv2 6 7from PIL import Image 8import sys 9from datetime import datetime 10 11def main(): 12 data_dir_path = u"./test/wood" 13 file_list = os.listdir(r'./test/wood') 14 15 for file_name in file_list: 16 root, ext = os.path.splitext(file_name) 17 if ext == u'.png' or u'.jpeg' or u'.jpg': 18 abs_name = data_dir_path + '/' + file_name 19 image = cv.imread(abs_name) 20 21 h, w, c = image.shape 22 v_split = 5 # 垂直方向の分割数 23 h_split = 5 # 水平方向の分割数 24 25 _img = image[:h // v_split * v_split, :w // h_split * h_split] 26 print('{} -> {}'.format(image.shape, _image.shape)) 27 28 out_imgs = [] 29 for h_img in np.vsplit(_img, v_split): # 垂直方向に分割する。 30 for v_img in np.hsplit(h_img, h_split): # 水平方向に分割する。 31 out_imgs.append(v_img) 32# out_imgs = np.array(out_imgs) 33# print(out_imgs.shape) 34 35 os.makedirs('./test/wood/output', exist_ok=True) 36 for i, img in enumerate(out_imgs): 37 cv2.imwrite(os.path.join('./test/wood/output', '{}.jpg'.format(i)), img)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/29 02:37