前提・実現したいこと
任意のディレクトリ内から画像を読み込み、中央の任意のサイズを抜き取りリサイズをかけたいと思っております。
発生している問題・エラーメッセージ
自分で確認したところリサイズ後のimwriteでエラーが出ているっぽいのですが原因がわかりません。
TypeError: img is not a numpy array, neither a scalar
該当のソースコード
Python
1import os 2import glob 3import sys 4import cv2 5import copy 6import pathlib 7 8from programs.utils import checker 9from programs.mk_data.mk_ameddata import MkData 10 11def resize(img, size): 12 img_ = [ 13 cv2.resize(im, size) 14 for im in img 15 ] 16 17 return img_ 18 19def bundle_expansion(load_dir, dir, save_path, save_folder, size): 20 """ 21 指定されたディレクトリ内のデータセットの拡大 22 23 Args: 24 load_dir:画像のあるディレクトリ名 25 save_path:保存する場所へのパス 26 save_folder:保存するためのフォルダ名 27 size:リサイズ後のサイズ 28 """ 29 30 save_path = pathlib.Path(save_path) 31 load_dir = pathlib.Path(load_dir) 32 save_folder = pathlib.Path(save_folder) 33 34 path_save = save_path/save_folder 35 36 try: 37 path_save.mkdir(parents=True) 38 except FileExistsError as e: 39 if not checker.overwrite(e): 40 sys.exit("stop running") 41 42 img_list = glob.glob(dir + '*') 43 name_list = [] 44 ext_list = [] 45 46 if not load_dir.exists(): 47 raise FileNotFoundError(load_dir) 48 49 for img in img_list: 50 file = os.path.basename(img) # 拡張子ありファイル名を取得 51 name, ext = os.path.splitext(file) # 拡張子なしファイル名と拡張子を取得 52 name_list.append(name) # 拡張子なしファイル名をリスト化 53 ext_list.append(ext) # 拡張子をリスト化 54 im = cv2.imread(img, 0) 55 56 output_path = os.path.join(*[path_save/save_folder, name + ext]) 57 58 img_ = im[6:58,6:58] 59 60 image = resize(img_, size) 61 cv2.imwrite(output_path, image) 62 return 63 64if __name__ == '__main__': 65 bundle_expansion( 66 './data/abdomen64/train/tumor', './data/abdomen64/train/tumor', 67 './data/abdomen64/train', 'exp_tumor', (64,64))
試したこと
output_pathの確認や抜き出してくるサイズの変更など
補足情報(FW/ツールのバージョンなど)
VscodeでPyton3.6.9を使っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/16 02:44