CNNの学習用に画像を集め、その画像の解像度を揃えようと思っています。
python
1import cv2 2import sys 3import os 4import numpy as np 5 6file_names = os.listdir('images') 7for file_name in file_names: 8 img = cv2.imread(file_name) 9 resized = cv2.resize(img, (192, 256))
このような感じで、画像をcv2.resize(img, (192, 256))で、192 ✕ 256にリサイズしたいのですが、用意した画像のアスペクト比がバラバラだからか、
Traceback (most recent call last): File "resized_image.py", line 14, in <module> resized = cv2.resize(img, (192, 256)) cv2.error: OpenCV(4.1.0) /io/opencv/modules/imgproc/src/resize.cpp:3718: error: (-215:Assertion failed) !ssize.empty() in function 'resize'
以下のようなエラーがでてしまいます。
画像の引き伸ばしをせずに、余白を追加するなどしてすべての画像を指定した解像度にしたいです。
どのようにすればいいでしょうか
そもそも学習させるにはアスペクト比も同じにしたほうがいいですよね?
他に良い変換方法があるなら教えてください。
images ディレクトリにあるのは、イメージだけですか?
ちょっと仕様を覚えていませんが、. や .. など、ディレクトリもリストアップしていませんか?
そうですね。イメージだけです。
file_names = os.listdir('images')
print(file_names)
でみてもイメージファイルのみのリストを確認できました。
回答2件
あなたの回答
tips
プレビュー