HOMEソリューションImage-Proの画像解析の例
ソリューション 繊維の長さと本数を求める

Q: グラスウールなどの繊維の長さと本数を測定したいのだが。

A: 繊維の長さは、繊維の重なりが少なく、繊維を細線化できる画像であれば、ほぼ測定可能です。繊維が複雑に絡み合っている場合、本数を正確にカウントするのは困難ですが、細線化の後、線の端点数をカウントして2で除算することで推定本数を算出できます。

作業手順は以下のようになります。
  1. 画像を開きます。
繊維の画像

注記:
画像は、上図のように、黒い背景に白い繊維が写っているモノクロ画像である必要があります。白い背景に黒い繊維が写っている画像の 時は、"Enhance" (強調) メニューの "Invert Image" (画像を反転する) コマンドで画像を予め白黒反転してから、2.の手順に進んで下さい。また、画像をまだ保存していない場合は、ここでファイルに保存しておいて下さい。
  1. "Enhance" (強調) メニューの"Contrast Enhancement" (コントラスト強調) コマンドでBCGツールを表示し、スライダを動かして画像のコントラストを上げて下さい。できるだけ2値画像に近い、高コントラストの画像になるように調 整します。
コントラスト強調

コントラストの調整が終わったら、必ず"Apply" (適用) ボタンをクリックし、確認のメッセージ(ルックアップテーブルを画像データに適用しますか?) で"OK"をクリックします。

注記: 1回のコントラスト強調で十分なコントラストを得られない場合は、再度調整→"Apply" (適用) を繰り返します。
再度コントラスト調整

  1. 次に、"Process" (処理) メニューの "Filters" (フィルタ) コマンドを実行して "Filters" (フィルタ) ダイアログを開き、"Morphological" (モフォロジカル) タブの "Thinning" (細線化) フィルタを選択します。
"Options" (オプション) 欄で "Threshold" (閾値) =50%、"Stop after" (回数) =1 を選択し、"Apply" (適用) ボタンをクリックします。
細線化を実行

これで画像内の繊維が、1ピクセル幅の線に細線化されます。
  1. ここで "Edit" (編集) メニューの "Duplicate/Crop to AOI" (複製/AOIの切り出し) を実行し、細線化した画像の複製(図の例では"新規001")を作成しておきます。この複製の画像は、11.以降の手順で繊維の本数を算出するのに使用します。
細線化画像を複製
  1. 次に、元の画像(下図の例では"FIBERS.TIF")をクリックしてから、再び "Filters" (フィルタ) ダイアログの "Morphological" (モフォロジカル) タブで "Dilate" (膨張) フィルタを選択します。"Options" (オプション) 欄で "2x2 Square" (2x2 正方形) を選択し、"Passes" (回数) =1に設定してから、"Apply" (適用) をクリックします。
線を膨張させる

この操作で、線が2ピクセル幅になります。
  1. "Measure" (測定) メニューの "Count/Size" (カウント/サイズ) コマンドを実行してカウント/サイズを起動します。
  2. "Count/Size" (カウント/サイズ) ダイアログの "Measure" (測定) メニューから "Select Measurements" (測定項目) を実行し、"Measurements" (測定項目) 欄で "Perimeter2" (周囲長2) を選択します。"Area" (面積) はデフォルトで選択されていますので、そのままにしておきます。
周囲長2を選択

設定が終了したら、"OK"をクリックします。

注意:
  • 画像内にノイズが多く、ノイズが孤立点や短い線となって現われているときは、上の"Select Measurements" (測定項目) ダイアログの "Filter Ranges" (選別レンジ) 欄で "Area" (面積) 等の測定項目を選択し、"Start" (最小) 欄の数値を増やしてみて下さい。
  • 繊維の長さは、 "Perimeter2" (周囲長2) で繊維を表す線の内側 (=「穴」の周囲) と外側を測定した後、その測定結果を2で除算することで求めます。このため、重なった線の外側しか測定しない"Perimeter" (周囲長) や"Perimeter3" (周囲長3) は使用できない点にご注意下さい。
周囲長2
  • "Perimeter2" (周囲長2) で線の両側を測定する場合、線が1ピクセル幅だと一部の区間で外側の線=内側の線となり、内側と外側の2本が1本として測定されるため、測定結果が実際の 長さよりも短い値になってしまいます。これを避けるため、上の5.の手順で線を太くして2ピクセル幅にしています。
  • カウント/サイズには"Dendritic length" (枝長さ) という測定項目もありますが、これは粒子から突出した枝、または長い線から分岐した短い線(=枝)の長さを測定する測定項目ですので、繊維の測定には使用できません。
  1. 次に、"Count/Size" (カウント/サイズ) ダイアログの "Options" (オプション) ボタンをクリックして "Count/Size Options" (カウント/サイズのオプション) を開きます。
"Outline Style" (アウトラインの形式) は"With Holes" (穴のアウトラインも表示する)に設定します。
"Fill Holes" (穴を埋める) オプションは非選択にします。
"Clean Borders" (境界上を除外) は "(None)" (なし) を選択します。

カウント/サイズの設定

設定が終了したら、"OK"をクリックします。
  1. "Count/Size" (カウント/サイズ) ダイアログの "Automatic Bright Objects" (明るい色のオブジェクトを自動抽出) オプションを選択し、"Count" (カウント) をクリックします。
繊維長さの測定を実行

これで測定は終了しました。
  1. 繊維の長さを算出するには、まず"Count/Size" (カウント/サイズ) ダイアログの "View" (表示) メニューから "Statistics" (統計) を実行して統計データを開きます。
"Perimeter2" (周囲長2) の列の "Sum" (合計) に表示されている数値が線の両側の長さの合計ですので、この値を2で除算すると線の長さの合計値になります。
線の長さを求める

上図の例では、30679.0 ÷ 2 = 15339.5 が、画像内の繊維の合計長さ(総延長)になります。

元の画像がファイルに保存してある場合、"File" (ファイル) メニューの "Reload" (再ロード) コマンドを実行すると、測定された線(赤色)を元の画像の繊維と重ねることができます。
元の画像と重ねる

  1. 次に、繊維の本数をカウントします。これ以降は、上の4.の手順で作成した細線の画像(線の幅が1ピクセルの画像)を使用します。
4.で作成した画像(図の例では"新規001")をクリックしてから "Count/Size" (カウント/サイズ) の "Measure" (測定) メニューにある "Select Measurements" (測定項目) を実行し、"Measurements" (測定項目) 欄で "End points" (端点数) を選択します。"Area" (面積) はデフォルトで選択されていますので、そのままにしておきます。   
端点数を選択

設定が終了したら、"OK"をクリックします。

注意:
  • 画像内にノイズが多く、ノイズが孤立点や短い線となって現われているときは、"Filter Ranges" (選別レンジ) 欄で "Area" (面積) 等の測定項目を選択し、下の"Start" (最小) 欄の数値を増やしてみて下さい。
  • "End points" (端点数) は、1ピクセル幅の線の両端をカウントします。幅が1ピクセルを超える線はカウントしません。従って、ここでは "Thinning" (細線化) フィルタ適用後の、細線の画像を使用する必要があります。
  1. "Count/Size" (カウント/サイズ) ダイアログの "Automatic Bright Objects" (明るい色のオブジェクトを自動抽出) を選択してから、"Count" (カウント) ボタンをクリックして下さい。
これで、画像内の線の端点数がカウントされました。
測定を実行
  1. 繊維の本数を算出するには、まず "Count/Size" (カウント/サイズ) ダイアログの "View" (表示) メニューから "Statistics" (統計) を実行して統計データを開きます(上図)。
    "End points" (端点数) の列の "Sum" (合計) に表示されている数値が線の両端点数の合計ですので、この値を2で除算すると画像内の繊維の合計本数になります。
    上図の例では、78 ÷ 2 = 39 が繊維の推定本数になります。