
実現したいこと
パス内の中の画像を一括に読み込み、白いピクセルの数/全ピクセル数を計算したい
発生している問題・エラーメッセージ
以下のコードを実行すると、パス内の中の画像3枚があることに対して、実行すれば1枚しか読み込まれなかったそうです。
多分、pixel_number = np.size(img)に何か修正が必要です。
よろしければ、サンプルコードを修正して頂きたいと思います。
該当のソースコード
import cv2
import pathlib
input_dir = './dir'
output_dir = './dir2'
image_list = list(pathlib.Path(input_dir).glob('**/*.img'))
for i in range(len(image_list)):
# 画像一枚をグレースケールで読み込み
img = cv2.imread(str(image_list[i]), cv2.IMREAD_GRAYSCALE)
pixel_number = np.size(img) #全ピクセル数をpixel_numberに代入
pixel_sum = np.sum(img) #全ピクセルの輝度の合計をpixel_sumに代入
white_pixel_number = pixel_sum/255 #白いピクセルの数を計算しwhite_pixel_numberに代入
black_pixel_number = pixel_number - white_pixel_number #黒いピクセルの数を計算しwhite_pixel_numberに代入
print("全ピクセル数",pixel_number) #全ピクセル数を表示
print("輝度の合計値",pixel_sum) #輝度の合計値を表示
print("白いピクセルの数",white_pixel_number) #白いピクセルの数を表示
print("黒いピクセルの数",black_pixel_number) #黒いピクセルの数を表示
print("白いピクセルの数/全ピクセル数",white_pixel_number/pixel_number) #白いピクセルの数/全ピクセル数表示
補足情報(FW/ツールのバージョンなど)
ちなみに、このコードを以下のリンクを参考として、作成致しました。
0 コメント