HOMEソリューションImage-Proの画像解析の例
ソリューション 粒界の再構築

Q: 原子間力顕微鏡を使っているが、粒界がはっきり写らず途切れ途切れになり、しかも明るさが一様でない、奥行きのある画像になるので、カウント/サイズで粒子がうまく抽出できず困っている。何かいい手はないか。
AFMの画像

A: Image-Pro Plusのカウント/サイズでは、粒子を抽出するために、濃淡の違い(または色の違い)に基づいて画像を2値化しますので、粒子と背景のコントラストが弱い画像や、粒界が途切れた画像では粒子を正しく抽出できません。
本来、そのような画像では粒界を手動でトレースし、補正する必要がありますが、これには時間と労力がかかります。
これを自動的に行なうため、Image-Pro Plusに搭載されている、ボロノイ境界線 (ボロノイ多角形) を作図するフィルタ (細線化フィルタ、プルーニングフィルタ、縮退フィルタ) を利用できます。

ボロノイ境界

粒子とボロノイ境界線

注記:
「ボロノイ (Voronoi) 境界線 (多角形)」は「ディリクレ...」(Dirichlet...)、「ヴィグナー・ザイツ...」(Wigner-Seitz...)、「ティーセン...」(Thiessen...)とも呼びます。

ボロノイ境界線は隣接する2つの点の中間を通る線です。粒子を縮退させ、点に近づけた後、その間にボロノイ境界線を引くと、多くの場合、元の粒界にほぼ一致する線になります。

実際の処理手順は、画像や粒子の状況によって大幅に異なりますが、大きく分けると次のようなステップがあります。
処理内容
使用するツール
([]内は白い背景に黒い粒子の画像、それ以外は黒い背景に白い粒子の画像で使用します)
  1. 粒界をできる限りエッジ抽出する
ウェルフィルタ [トップハットフィルタ]、ラージスペクトラルフィルタのエッジ-フィルタ [エッジ+フィルタ]など
注記: 画像のノイズが多いときは、エッジ抽出を行なう前にメディアンフィルタ、ローパスフィルタなどで平滑化しておきます。また、画像の背景が部分的に明るすぎる・暗すぎるときは、予め平坦化フィルタ、局部イコライズフィルタ等で背景の明るさを平坦化しておきます。
  1. 粒界を接続し、粒子を縮退させる
接続フィルタ [切断フィルタ]、膨張フィルタ [収縮フィルタ]
  1. 粒子間にボロノイ境界線を作成する
細線化フィルタ、プルーニングフィルタ、縮退フィルタ
  1. 元の画像とボロノイ境界線を結合する(重ね合わせる)
演算ツール (画像間演算) など

注記: 以下の手順は、Image-Pro PlusのインストールCD内の"More Images"フォルダにあるサンプル画像"AFM_SURF.tif"を処理した場合の例です。この種の画像処理は個々の画像の状態によって大きく影響 を受けますので、処理手順は必ずしもこの通りでない可能性があります。
  1. 画像を開き、"Edit" (編集) メニューの "Duplicate/Crop to AOI" (複製/AOIの切り出し) を実行し、画像を複製します。
画像を複製

これ以降、複製の画像(上図の例では"新規001")を処理していきます。
  1. "Process" (処理) メニューの "Filters" (フィルタ) を実行して "Filters" (フィルタ) ダイアログを開き、"Morphological" (モフォロジカル) タブの "Well" (ウェル) フィルタを選択します。
ウェルフィルタは、画像内の黒いエッジを抽出します。

"Options" (オプション) 欄でカーネルサイズ="7×7"、"Passes" (回数) =1、"Strength" (強さ) =10に設定し、"Apply" (適用) ボタンをクリックして画像に適用します。
ウェルフィルタでエッジ抽出

これで、粒界が白い線として抽出されます。
注記: 画像によっては、ウェルフィルタで粒 界がほとんど抽出されないことがあります。この場合、ウェルフィルタを適用する前に、"Enhance" (強調) タブの "Flatten" (平坦化) フィルタや "Local equalization" (局部イコライズ) フィルタ、ないし"Process" (処理) メニューの "Large Spectral Filters" (ラージスペクトラルフィルタ) で画像を平坦化しておく必要があります。また、場合によっては、"Median" (メディアン) フィルタ、"Gauss" (ガウス) フィルタ、"LoPass" (ローパス) フィルタなどでノイズを除去する必要があります。
  1. 次に、同じ "Morphological" (モフォロジカル) タブの "Connect" (接続) フィルタを選択し、ウェルフィルタで抽出した白いエッジの途切れた部分を、できる限りつなぎます。
"Options" (オプション) 欄でカーネルサイズ="7×7 Circle" (7x7 円形)、"Passes" (回数) =1に設定し、"Apply" (適用) ボタンをクリックして画像に適用します。
接続フィルタを適用

注記: 画像によっては、この処理に引き続き、"Dilate" (膨張) フィルタで白いエッジをさらに拡げ、粒子を収縮した方が良い結果を得られる場合があります。

  1. ここで、"Enhance" (強調) メニューの "Contrast Enhancement" (コントラスト強調) コマンドを実行してBCGツールを開き、スライダを操作して画像のコントラストを上げます。
コントラストを強調

コントラストの調節が終了したら、"Apply" (適用) ボタンをクリックし、確認のメッセージ (ルックアップテーブルを画像データに適用しますか?) で"OK"をクリックします。
  1. 次に、"Process" (処理) メニューの "Filters" (フィルタ) を実行して "Filters" (フィルタ) ダイアログを開き、"Morphological" (モフォロジカル) タブの"Pruning" (プルーニング) フィルタを選択します。
図のようにオプションを設定して"Apply" (適用) をクリックします。
 
ボロノイ多角形に変換

これで、粒子の画像がボロノイ多角形に変換されました。この画像内のボロノイ境界線が、元の画像の粒界にほぼ一致すると予想されます。

この画像をそのままカウント/サイズ等で測定すれば、結果的に元の画像の粒子を測定したことになりますが、ここでは比較のために、この画像を元の画像 ("AFM_SURF.tif") に重ねてみます。
  1. "Enhance" (強調) メニューの "Invert Image" (画像を反転する) コマンドを実行して、ボロノイ多角形の画像 ("新規001") を白黒反転します。
画像を反転
  1. "Process" (処理) メニューの "Operations" (演算) を実行して "Image Operations" (画像演算) ダイアログを開き、次のように設定します。
画像間演算の設定 "1st Operand" (第1オペランド) 欄で、元の画像 (図の例では"AFM_SURF.TIF")を選択します。

"Operation" (演算子) 欄で"AND"を選択します。

"2nd Operand" (第2オペランド) 欄で "Image" (画像) を選択し、その下の欄でボロノイ多角形の画像(図の例では"新規001") を選択します。

"Put result in:" (結果の出力先) 欄で "New Image" (新規画像へ) を選択します。

設定が終了したら、"Apply" (適用) ボタンをクリックします。

これで、元の画像とボロノイ多角形の画像が重ね合わされました。

重ね合わせ結果

この後、重ね合わせた結果の画像をカウント/サイズ等で測定して下さい。


注記:
  • 上記の処理でボロノイ境界を作成すると、線幅が1ピクセルの境界になります。このため、カウント/サイズで粒子を測定するときは、 "Count/Size" ダイアログの "Options" (オプション) ボタンで表示される "Count/Size Options" (カウント/サイズのオプション) で "4-Connect" (4連結) オプションを選択してから測定して下さい (この設定にしないと粒子が境界で分離されず、一塊になります)。
  • 粒界が正しく再現できないときは、"Count/Size" (カウント/サイズ) ダイアログの "Edit" (編集) メニューにある "Split Objects" (オブジェクトを分割) を使用して下さい。
  • ボロノイ境界を使った処理例として、以下もご参照下さい。