【Python】フォルダ内画像の輝度分布を一括でcsv化する方法

こんにちは、ヒガシです。

 

このページではPythonを用いて、以下の画像のようにフォルダ内にある複数の画像を処理し、

輝度をcsv化するサンプル画像

こんな感じで各画像の輝度分布をcsvファイルに出力する方法をご紹介していきます。

画像内輝度分布をcsv出力した例

 

スポンサーリンク

必要なライブラリ一覧

〇 Pillow

〇 glob

上記の2つだけです。

 

インストールを実施し、以下のコードが通ればOKです。

from PIL import Image, ImageFilter
import glob

 

スポンサーリンク

フォルダ内画像の輝度分布をcsv出力するプログラム

それでは本題であるフォルダ内に存在するすべての画像ファイルの輝度分布を順番にcsvファイルに出力していくサンプルプログラムをご紹介します。

from PIL import Image, ImageFilter
import glob
filenames = glob.glob('img/*')
for n in range(len(filenames)):           
    im = Image.open(filenames[n]).convert("L")
    f = open('brightness_' + str(n).zfill(3) + '.csv', 'w')
    for i in range(im.size[0]):
        for j in range(im.size[1]):
            f.write(str(im.getpixel((i,j))) + ',')
        f.write('\n')
    f.close()

 

読み込む画像がカラー画像だったとしてもグレースケールに自動変換したのちに輝度値を出力するようになっています。

スポンサーリンク

サンプルコードの実行方法について

上記のサンプルコードは以下のフォルダ構成前提で書いています。

サンプルコードの実行方法の解説画像

make_kidobunpu.pyが先ほど紹介したPythonプログラムです。

この.pyファイルと同じ場所にimgというフォルダを準備いただき、その中にあなたが輝度分布化したいファイルを起きておきます。

ここまで準備できたらあとはこの.pyファイルを実行するだけでOKです。

 

スポンサーリンク

おわりに

というわけで今回はPythonを使ってフォルダ内の複数画像の輝度分布をcsvファイルに一括出力する方法をご紹介しました。

 

画像処理の際などにぜひご活用ください。

 

なお、今回紹介したプログラムはexe化もしており、以下からダウンロードも可能です。

Python環境が使えない人はぜひこちらも見てみてください。

フォルダ内画像の輝度分布を順番にcsvファイルに出力するexeファイル|ヒガシ@メーカーエンジニア
この記事で紹介するexeファイルは、以下のようにexeファイルと同じフォルダに配置したimgフォルダ内にある 以下のような複数の画像に対して 画像内の輝度分布を取得し、以下のようにcsvファイルとして順番に出力します。 csvファイルの中身...

 

それではまた!

コメント

タイトルとURLをコピーしました