画像解析入門⑥ Image Jの基本画面とメニュー構成

前回までは、「ImageJ実習 – 2値化・領域抽出」をもとにImage Jで出来る機能についてご紹介しました。今回も引き続き、Image Jの機能について見ていきます!

Imageメニューについては今回は割愛します。(画像の種類等を変更出来ます。)

今回はProcessメニューから見ていきます。Processメニューでは、基本的な画像処理を行うことが出来ます。上記のようなことを色々と試すことが
出来るのです。

では、物は試しでサンプルのLena画像やBridge画像に画像処理をしてみましょう!

画像処理を行う場合、その最小単位は1pixelごとになります。そこで、X軸に沿って順番にpixelを見ていきます。選択したpixelにおいて周辺の統計量を加味して演算編集を行う(convolution:畳み込み)。畳み込みを行う為の範囲のことをカーネルと呼びます。

カーネルの中でどんな処理を行うのかについては様々な種類があります。
例えば、正規分布に体する重みづけをするガウシアンフィルタ(ガウシアンブラー)・中央値をもとに処理を行うメディアンフィルタなどがあります。

一つ一つ見ていきましょう。

まず、Smooth処理です。全体をぼかして輝度の変化を滑らかにします。下の画像は左がSmooth処理を5回かけたものです。違いが分かるでしょうか。

拡大するとよく分かりますね。

次に、SharpenはSmoothの逆で、輝度変化を際立たせます。

Find Edgesでは輝度変化の大きな部分をエッジとして抽出します。標準的なエッジ処理を示すことが出来ます。

その他にも、コントラストを強調するEnhance Contrast(コントラスト処理)や、画像に意図的にノイズを加えるノイズ処理を行うことが出来ます。
ごま塩ノイズ(Salt Pepper)という言葉を聞いたことがある方は結構ツウかも知れません。

そして、2値化処理(Threshold)を行った状態でのBinaryという処理もあります。初めて、2値化という言葉が出てきましたね。
2値化処理はよく用いられるので、チェックしておいて下さい。

Make Binaryという処理を行うと白黒=2値化されます。

ここで、Dilateを行うと黒の範囲が増え、Erodeを行うと白の範囲が増えます。ノイズ除去にもよく用いられるのです。

Math処理では、輝度の四則演算を行うことが出来ます。

例えば、写真の輝度の黒い部分がValue=30~40,白い部分が130〜140であるとします。(8-bitなので0~255まで階調がある)
この黒の部分を完全に黒(値=0)にすると、どうなるでしょうか?

次にFFT(Fast Fourie Transfer)です。これは画像を周波数として捉えフーリエ変換したものを見ています。
一見画像には見えませんね。

以下は画像を、原画像→周波数→原画像と編集したものです。Process->FFT/InvertFFTを用いて行うことが出来ます。

ちょっと分かりにくいかも知れないので、周波数について、簡単に紹介します。

周波数成分は、中心部分が低い周波数、高い周波数になるにつれて外側へ離れていきます。周波数の変化の度合い順に原点から並べていると考えるといいかも知れません。

例えば、周波数の低い部分をとるとどうなるでしょうか?おおざっぱな変化(=低周波)がなくなり、細かい情報(=高周波)が際立ちます。

上の写真を見て下さい。なだらかに、右下に向かう程(Distanceが大きくなる程)、Valueが挙がっている(大きな距離を見た変化。)一方、小さな粒:細胞のコロニーは高いValueで至る所に点在するので、短い距離で大きな変化を示しています。(高周波数)

さて、長くなってしまったのでここで一旦切りたいと思います。次回は,Pythonを一回挟んでAnalyzeメニューを紹介したいと思います。