Q: 原子間力顕微鏡を使っているが、粒界がはっきり写らず途切れ途切れになり、しかも明るさが一様でない、奥行きのある画像になるので、カウント/サイズで粒子がうまく抽出できず困っている。何かいい手はないか。
A: Image-Pro Plusのカウント/サイズでは、粒子を抽出するために、濃淡の違い(または色の違い)に基づいて画像を2値化しますので、粒子と背景のコントラストが弱い画像や、粒界が途切れた画像では粒子を正しく抽出できません。
本来、そのような画像では粒界を手動でトレースし、補正する必要がありますが、これには時間と労力がかかります。
これを自動的に行なうため、Image-Pro Plusに搭載されている、ボロノイ境界線 (ボロノイ多角形) を作図するフィルタ (細線化フィルタ、プルーニングフィルタ、縮退フィルタ)
を利用できます。
粒子とボロノイ境界線
注記:「ボロノイ (Voronoi) 境界線 (多角形)」は「ディリクレ...」(Dirichlet...)、「ヴィグナー・ザイツ...」(Wigner-Seitz...)、「ティーセン...」(Thiessen...)とも呼びます。
ボロノイ境界線は隣接する2つの点の中間を通る線です。粒子を縮退させ、点に近づけた後、その間にボロノイ境界線を引くと、多くの場合、元の粒界にほぼ一致する線になります。
実際の処理手順は、画像や粒子の状況によって大幅に異なりますが、大きく分けると次のようなステップがあります。
処理内容
|
使用するツール
([]内は白い背景に黒い粒子の画像、それ以外は黒い背景に白い粒子の画像で使用します)
|
- 粒界をできる限りエッジ抽出する
|
ウェルフィルタ
[トップハットフィルタ]、ラージスペクトラルフィルタのエッジ-フィルタ [エッジ+フィルタ]など 注記:
画像のノイズが多いときは、エッジ抽出を行なう前にメディアンフィルタ、ローパスフィルタなどで平滑化しておきます。また、画像の背景が部分的に明るすぎる・暗すぎるときは、予め平坦化フィルタ、局部イコライズフィルタ等で背景の明るさを平坦化しておきます。
|
- 粒界を接続し、粒子を縮退させる
|
接続フィルタ
[切断フィルタ]、膨張フィルタ [収縮フィルタ] |
- 粒子間にボロノイ境界線を作成する
|
細線化フィルタ、プルーニングフィルタ、縮退フィルタ
|
- 元の画像とボロノイ境界線を結合する(重ね合わせる)
|
演算ツール
(画像間演算) など |
注記: 以下の手順は、Image-Pro
PlusのインストールCD内の"More Images"フォルダにあるサンプル画像"AFM_SURF.tif"を処理した場合の例です。この種の画像処理は個々の画像の状態によって大きく影響
を受けますので、処理手順は必ずしもこの通りでない可能性があります。
- 画像を開き、"Edit" (編集) メニューの "Duplicate/Crop to AOI" (複製/AOIの切り出し)
を実行し、画像を複製します。
これ以降、複製の画像(上図の例では"新規001")を処理していきます。
- "Process" (処理) メニューの "Filters" (フィルタ) を実行して "Filters" (フィルタ)
ダイアログを開き、"Morphological" (モフォロジカル) タブの "Well" (ウェル) フィルタを選択します。
ウェルフィルタは、画像内の黒いエッジを抽出します。
"Options" (オプション) 欄でカーネルサイズ="7×7"、"Passes" (回数) =1、"Strength" (強さ)
=10に設定し、"Apply" (適用) ボタンをクリックして画像に適用します。
これで、粒界が白い線として抽出されます。
注記: 画像によっては、ウェルフィルタで粒
界がほとんど抽出されないことがあります。この場合、ウェルフィルタを適用する前に、"Enhance" (強調) タブの "Flatten"
(平坦化) フィルタや "Local equalization" (局部イコライズ) フィルタ、ないし"Process" (処理)
メニューの "Large Spectral Filters" (ラージスペクトラルフィルタ) で画像を平坦化しておく必要があります。また、場合によっては、"Median"
(メディアン) フィルタ、"Gauss" (ガウス) フィルタ、"LoPass" (ローパス) フィルタなどでノイズを除去する必要があります。
- 次に、同じ "Morphological" (モフォロジカル) タブの "Connect" (接続) フィルタを選択し、ウェルフィルタで抽出した白いエッジの途切れた部分を、できる限りつなぎます。
"Options" (オプション) 欄でカーネルサイズ="7×7 Circle"
(7x7 円形)、"Passes" (回数) =1に設定し、"Apply" (適用) ボタンをクリックして画像に適用します。
注記:
画像によっては、この処理に引き続き、"Dilate" (膨張) フィルタで白いエッジをさらに拡げ、粒子を収縮した方が良い結果を得られる場合があります。
- ここで、"Enhance" (強調) メニューの "Contrast Enhancement" (コントラスト強調) コマンドを実行してBCGツールを開き、スライダを操作して画像のコントラストを上げます。
コントラストの調節が終了したら、"Apply" (適用) ボタンをクリックし、確認のメッセージ (ルックアップテーブルを画像データに適用しますか?)
で"OK"をクリックします。
- 次に、"Process" (処理) メニューの "Filters" (フィルタ) を実行して "Filters" (フィルタ)
ダイアログを開き、"Morphological" (モフォロジカル) タブの"Pruning" (プルーニング) フィルタを選択します。
図のようにオプションを設定して"Apply" (適用) をクリックします。
これで、粒子の画像がボロノイ多角形に変換されました。この画像内のボロノイ境界線が、元の画像の粒界にほぼ一致すると予想されます。
この画像をそのままカウント/サイズ等で測定すれば、結果的に元の画像の粒子を測定したことになりますが、ここでは比較のために、この画像を元の画像
("AFM_SURF.tif") に重ねてみます。
- "Enhance" (強調) メニューの "Invert Image" (画像を反転する) コマンドを実行して、ボロノイ多角形の画像
("新規001") を白黒反転します。
- "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" (オブジェクトを分割) を使用して下さい。
- ボロノイ境界を使った処理例として、以下もご参照下さい。
|