2016年9月14日 更新

【Python講座8】Pythonで画像処理

前回まで、PythonとImage Jがどのようにつながっているかを、実際のチュートリアルのコードで見てきました。画像の情報を取得したり、ファイルを表示するような簡単な操作をPythonで行うことが出来ることが分かってきたと思います。

785 view お気に入り 0
今回は、ピクセル単位で編集を行うような画像解析処理を行います。画像全体の
よりメタな情報(輝度がどれくらいか、平均がどれくらいなのか)を、プログラミング目線から取得する
にはどうすればよいか?を調べています。

Fijiのチュートリアルでは、Iterating Pixelsをご覧下さい。

以下のコードは、前回の最後に紹介しました。これは一体何をするプログラムでしょうか?
 (706)

これは、画像の中で一番小さな値を示すピクセルがどれにあたるかを調べているプログラムです。
しかし、一つ一つのピクセルを調べていなければ、最小の値は分からないはずです。

従って、前回やってきた統計情報よりもさらに細かな情報を扱うことになります。

Method1~3までが紹介されていますが、具体的にどんなことが書いてあるか、見てみます。

①the for loop, C style(C言語の書き方)…一番簡単な方法です。for文で反復処理させます。
②iterate pixels as a list(ピクセルを全てリストにひとくくりにして反復させる)…iは表示されない。python独自のコードを使って、反復処理で要素を取得する方法。
③apply the built-in min function…reduceという関数を使って最小値を調べる

だいたいこのような感じです!1つずつ見ていきましょう!

①C言語の書き方

以下のような書き方をしています。
 (710)

このコードでは、minimumをまず最初に設定して、それから順番に画像内のピクセルを一つ一つ調べています。
 (712)

MAX_VALUE(最大値)をまず最初に代入しておきます。一番最初は一番大きな値を入れておけば、次にどんな
数がきても、最小値が更新されるため、画像の中にある一番小さな値を調べることが出来ます。

ここで、Floatとは、実数に近い浮動小数点までを含めた形式で数値を表す形式です。C言語で扱える実数値は2進数の有限小数で表された数値のため、float型を使うことがあります。もしfloatが原因でエラーが発生した場合、ソフトウェアが浮動小数定数に対応していないことがあります。

今回の場合は、予め、pixel値より極端に大きい値(9999999999とか)を入れておくことで対応出来ます。
 (714)

len(pixels)…lenはオブジェクトの長さ (要素の数) を返します。今回はピクセル数を返しています。

xrange:()内の情報を取得していて、どこまでの範囲を調べるか指定します。rangeとも似ていますが、for文の中で使われることを想定されます。最近はrange()と書くことが推奨されています。

つまり、画素(pixels)の数だけ、白黒の値を調べていて、小さい値が出てきたらminimumを更新するというコードです。

C言語的な手法の方が、iの要素を取得出来るので、統計解析には使えるが、コードをきちんと書くため、野暮ったいと感じる場合もあるかも知れません。

②ピクセルを全てリストにひとくくりにして反復させる方法

以下のようなコードを書きます。
 (718)

これはPythonで処理をする時はこういう書き方をします。初心者にとっては見易い書き方ですね。
30 件

関連する記事 こんな記事も人気です♪

LP-tech2周年記念#人気記事のまとめ#第5位〜第1位

LP-tech2周年記念#人気記事のまとめ#第5位〜第1位

LP-techが始まってから2周年を迎えました。ここまでLP-techを続けることができたのも読者の皆様のおかげだと思っています。そこで、LP-techの感謝祭ということで、人気の記事を第20位から第1位までをご紹介します。今回は第5位〜第1位までです。
LP-tech2周年記念#人気記事のまとめ#第10位〜第6位

LP-tech2周年記念#人気記事のまとめ#第10位〜第6位

LP-techが始まってから2周年を迎えました。ここまでLP-techを続けることができたのも読者の皆様のおかげだと思っています。そこで、LP-techの感謝祭ということで、人気の記事を第20位から第1位までをご紹介します。今回は第10位〜第6位までです。
LP-tech2周年記念#人気記事のまとめ#第15位〜第11位

LP-tech2周年記念#人気記事のまとめ#第15位〜第11位

LP-techが始まってから2周年を迎えました。ここまでLP-techを続けることができたのも読者の皆様のおかげだと思っています。そこで、LP-techの感謝祭ということで、人気の記事を第20位から第1位までをご紹介します。今回は第15位〜第11位までです。
医用画像位置合わせの基礎⑥ 〜アフィン変換とは?〜

医用画像位置合わせの基礎⑥ 〜アフィン変換とは?〜

今回は、画像位置合わせに用いられるアフィン変換をご紹介します。
木田智士 | 7,284 view
画像の再構成理論〜概要、まとめ〜

画像の再構成理論〜概要、まとめ〜

今回は、以前4回にわたって記事として投稿した画像の再構成理論の概要について述べ、それのまとめをしたいと思います。

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部