Re - ImageJで学ぶ!: 第61回 ImageJによるコントラスト調整の応用ーCLAHEについてで学ぶ!

2015年12月10日木曜日

第61回 ImageJによるコントラスト調整の応用ーCLAHEについてで学ぶ!

ImageJの標準の画像処理機能の中には、ヒストグラムを均一にしてコントラストを調整するメニューもありますが、同じ画像の中でも濃淡コントラストが極端に異なる領域が存在する場合、画像ノイズも強調されてしまい、期待通りの画像処理結果が得られないことがあります。このような場合に、ユーザー側で許容できるノイズレベルや、画質を調整できるコントラスト制御機能があれば非常に便利です。

今回は、このコントラストの均一化について、パラメータの調整が可能な”CLAHE”(コントラスト制限付適応ヒストグラム均一化/均等化)について説明します。
医用画像処理の応用として、CLAHE処理は、放射線治療の分野で使用されるリニアックグラフィ(ポータルイメージ)やマンモグラフィなどにも適応されています。


CLAHEとは


ヒストグラム均一化処理は、処理対象となる画像全体に機能しますが、コントラスト制限付適応ヒストグラム均一化/均等化処理(Contrast Limited Adaptive Histogram Equalization:CLAHE)は、画像内のtilesと呼ばれる分割されたブロックごとに処理をすることで、画像の局所領域のコントラストを強調し、細部の可視性を高める手法です。CLAHEは局所領域のノイズの過剰な増幅を抑えた強調処理ができるといわれています。

CLAHEでは、分割されたtileに対して、近似的かつ最適なヒストグラムのコントラストになるよう自動濃淡調整を行います。この処理の際、計算ブロックごとの境界にアーチファクトが生じるため、 双一次内挿(バイリニア補間)を使って、近傍のtileに補間処理をかけます。

ImageJでは、Stephan Saalfeld氏によって開発されたCLAHEプラグイン(http://rsbweb.nih.gov/ij/plugins/clahe/CLAHE_.java)が用意されており、通常のヒストグラム均一化と一味違う結果が得られます。
以下にCLAHEのコントロールパラメータを示します。
  • ブロックサイズ:画像を分割するtileのサイズの決定。目安として画質を維持したい対象のサイズよりも大きなブロックサイズを選択すと良い。
  • ヒストグラムのビン数:8および24ビットカラー(RGB)のみ対応のヒストグラムで、ビン数はtileのピクセル数よりも小さく設定しなければならない。
  • 最大スロープ:強度伝達関数(intensity transfer function)によるコントラスト伸張の制限を決める。この値の1は、元画像を基準として、それよりも大きな値を入力することによって画像局所の最大コントラストを決定する。

ImageJを用いたCLAHE処理


ここからは、実際にImageJでCLAHEを利用する方法を紹介します。
まず、CLAHEのプラグインファイルをImageJプラグインのWebサイトからダウンロードし、ImageJのプラグインフォルダ下に置きます。ダウンロードできない場合は、上記URLのソースをすべてテキストにコピーしてから、拡張 子を".java"に変えます。

対象となる画像をImageJに表示し、インストールしたCLAHEプラグインをプラグインメニューのコンパイル&ランから選択して起動します。



すると、前述したパラメータを入力するウィンドウが現れるので、それぞれの値を入力します。図に、同一症例におけるImageJを用いた標準的なコントラスト均一化処理を行った場合と、CLAHE処理を行った場合を示します。

標準的なコントラスト均一化処理(Process>EnhanceContrast...)

CLAHE処理


この例では、tileのサイズを127×127にし、ヒストグラムビン数は画像が8ビットであるため256とし、maximum slopeをオリジナルの1より大きな値の3で処理してみた例となります。
その結果、目視評価では、CLAHEによる処理は、ノイズを抑制しながらコントラストのバランスが良くなったように見えます。

図は、前述の比較例をImageJのSNR計測プラグインを用いて定量的に行った例です。


(Term1:オリジナル、Term1-1:均一化処理、Term1-2:CLAHE(tile:127)、Term1-3CLAHE(tile:63)、Term1-4CLAHE(tile:27))

それぞれ、オリジナルを元画像(リファレンス)としてSNR(Signal-to-noise ratio)、PSNR(Peak signal-to-noise ratio)、RMSE(Root mean square error)、MAE(Mean absolute error)を求めた値を示しています。

CLAHEでtileを細かくしていくほど、すべてのデータが元データと比べて改善していることがわかります。tileなどの設定値や解析対象物によって使い分けをすると、より良い結果が導けるかもしれません。腹部MRI画像での処理例では、かなり改善されるようです。


今回は濃淡値の均等化による調整を行う際、従来のヒストグラム均一化処理とは異なるCLAHE処理を用いて、ノイズを抑制を調整しながら、コントラストを均一に強調する方法を紹介しました。次回もImageJの便利な機能を紹介します。


参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(25・11) 2010, p114-115」

0 件のコメント:

コメントを投稿