Chigusa080226
@Chigusa080226

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Python_複数の画像を読み込み画像処理を実行したい。

解決したいこと

python初心者です。宜しくお願い致します。
複数の画像を読み込み、順番に画像処理を行いたいと考えております。
処理したい画像は4枚ですが、今後のことを考えて以下手順のようなプログラムを作成したいです。
①フォルダ内に保存されている画像の枚数を確認
②読み取った枚数分の画像処理を実行
③画像処理後のデータは別の処理に使うため、他の変数?に再格納

発生している問題・エラー

1枚の画像を読み込むことはできるのですが、
複数画像になるとどのようにすればよいか分かりません。

該当するソースコード

#画像読み込み
template = cv2.imread('base1.jpg')
#グレースケール
template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)
#エッジ変換
template_canny  = cv2.Canny(template_gray,1,500)

上記のような1枚の画像を読み込み、画像処理するプログラムはかけています。

自分で試したこと

for文を使用すればいいと考えているのですが、
フォルダ内の画像数や画像を格納する方法などが分かっておりません。

お忙しい中申し訳ありませんが、
ご教授お願い致します。

0

1Answer

以下のようにそれぞれ関数やリストを作ってはいかがですか?

def find_image_filenamess():
    # ファイル名のリストを作って返す


def convert(image)
    #グレースケール
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    #エッジ変換
    canny  = cv2.Canny(gray, 1, 500)
    return canny


filenames = find_image_filenames()
images = [cv2.imread(filename) for filename in filenames]
converted_images = [convert(image) for image in images]
1Like

Comments

  1. @Chigusa080226

    Questioner

    ご回答ありがとうございます。
    いただいたコードを参考に作成したところ、
    考えていたようなプログラムを作成することができました。
    ありがとうございます。

Your answer might help someone💌