Region Morphology vTool#
領域を縮小または拡張し、小さな構造を削除し、穴を削除し、穴を埋めることができます。これにより、後続の処理がより効率的になり、より良い結果が得られます。
Region Morphology vToolは、Regions入力ピンを介して領域または領域配列を受け入れ、Regions出力ピンを介して領域配列を出力します。
Region Morphology vToolの領域出力は、Roi入力ピンを備えたvToolでRoi入力としても使用できます。詳細については、トピックROI Creator vToolを参照してください。
仕組み#
領域モルフォロジーの目的は、領域を操作することです。基本的なモルフォロジー操作である浸食と膨張は領域マスクに基づいています。フィル操作にマスクは必要ありません。
マスク形状#
円形マスクと矩形マスクが使用できます。マスク形状に応じて、幅と高さ、または半径を指定できます。すべてのマスクは中心が明確に定義されています。モルフォロジー操作中、マスクは画像上で1行ずつ移動します。
幅と高さの値が奇数(3、5、7など)の矩形マスクの場合、マスクの中心はマスクの重心と同じになります。マスクは中心に対して対称です。
半径が整数に0.5を加えた値(1.5、2.5、3.5など)の円形マスクの場合、マスクの中心はマスクの重心と同じになります。マスクは中心に対して対称です。
初めて設定ダイアログを開いて矩形マスクを選択する場合、幅と高さがリンクしています。これにより、両方のパラメーターを同時に変更でき、生成されたマスクは正方形になります。幅と高さを個別に設定することもできます。これを実行するには、チェーンアイコンをクリックして幅と高さのリンクを解除します。
- リンクしたオプション:
- リンク解除されたオプション:
モルフォロジー操作#
さまざまな操作がどのように機能するか説明します。
- 浸食:マスクが入力領域内に完全に収まる場合は常に、マスクの中心が当たるピクセルが出力領域に追加されます。これにより、領域の面積が減少します。
- 膨張:マスクと入力領域が少なくとも1つのピクセルを共有する場合、マスクの中心が当たるピクセルが出力領域に追加されます。これにより、領域の面積が拡張します。
- Opening: This is a concatenation of erosion and dilation. The mask for the dilation is the same mask as for the erosion but rotated by 180 °. This operation removes structures that are smaller than the mask from the region. The output region is more or less the same size and shape as before.
- 閉:膨張と浸食を連続して実行します。浸食用のマスクは、膨張用のマスクと同じですが、180度回転されています。この操作により、領域内のマスクより小さいギャップをフィルするかブリッジします。領域は、以前とほぼ同じサイズと形状になります。
- Fill:領域内の穴を埋めます。この操作にマスクは必要ありません。
上記のオプションに加えて、region splittingも実行できます。これにより、領域の接続されたコンポーネントが、個別の領域に変換されます。対応するチェックボックスを選択すると、単一または複数のすべての入力領域の接続されたコンポーネントが計算されます。
接続されたコンポーネントは、すべてのピクセルが直接隣接するピクセルを持つ領域です(水平、垂直、および対角線方向)。接続されていない領域は、個別の出力領域に分割されます。
事前にモルフォロジー操作を行わなくても、生の入力領域で領域分割を実行することもできます。
情報
ブロブ分析の一部として領域モルフォロジーを使用している場合は、複数のRegion Morphology vToolsを連結して、目的の出力領域を最後に計算できます。
ブロブ分析の目的に応じて、一連の領域モルフォロジー操作の中間手順または最終手順としてRegion Selection vToolを使用し、関連する領域のみを除外できます。
例#
次のセクションでは、サンプル画像を使用して、さまざまなモルフォロジー操作について説明します。
浸食と拡張#
次の画像は、2つのモルフォロジー操作(侵食と拡張)を連続して使用して、元の形状を維持しながら、接触しているオブジェクトを分離する方法を示しています。その結果、オブジェクトの数を適切にカウントでき、それに続いて、領域の特徴に基づく検査が行われる可能性があります。
これは、白色タブレットを示す入力画像です。
これは、最初の領域が見つかった画像です。例えば、色分類の後です。
浸食操作を適用した後、領域は次のようになります。
最後に、拡張操作を適用した後、タブレットは分離されます。
開放と塗りつぶし#
開放操作は、例えば、画像ノイズやクラッターによって生じる小さな領域を抑制するためによく使用されます。これによって、領域が完全にセグメント化されることはありません。言い換えると、開放は、適切なマスクを使用することにより、非常に大きな領域構造を除外するために使用できます。
次の画像は、ターゲットオブジェクトの約半分のサイズの円形マスクで領域を開くことにより、回路基板の基準を検出できることを示しています。
領域の塗りつぶしは、リングを、塗りつぶされた円に変えるための中間手順として使用されます。
これは、回路基板を示す入力画像です。
しきい値を使用すると、画像内の光の構造を出力領域で確認できます。
塗りつぶしを適用した後、リングが塗りつぶされます。
最後に、開放を適用すると、すべての小さな領域が削除され、検出された領域として基準のみが残ります。
閉鎖#
閉鎖操作は、基本的に、領域内のくぼみを閉じ、ギャップを埋め、または個々の領域セグメントを接合するために使用されます。
前と同じ回路基板の例に基づいて、この例では、ボールグリッド配列領域をセグメント化する方法を示しています。開始点は、上記の光の構造を示すしきい値処理された画像です。
Apply a Closing operation with a rectangular mask big enough to bridge the gaps between all the balls of the ball grid array.
Apply an Opening operation to reduce small unwanted regions.
最後に、Region Selection vToolを使用して、両方のボールグリッド配列領域を、そのサイズに基づいて選択します。
一般的な使用例#
- 円形または長方形の浸食を使用した領域の縮小
- 円形または長方形の拡張を使用した領域の拡張
- 開放を使用した小さいオブジェクトの除去
- 適切なマスク形状で開放を使用したより大きなオブジェクトの除去
- 閉鎖を使用した小さい穴またはくぼみの塗りつぶし
- 閉鎖を使用した領域間のギャップの埋め込み
- 塗りつぶしを使用した領域内の穴の塗りつぶし
- Splitting connected components of regions into separate regions in order to count the number of regions
vToolの設定#
Region Morphology vToolを設定するには:
- [vTool Settings]エリアの[Recipe Management]ペインで、[Open Settings]をクリックするか、vToolをダブルクリックします。
[Region Morphology]ダイアログが開きます。 - [Morphology Operation]エリアで、実行する操作を選択します。
モルフォロジー操作を実行せずに領域を分割するだけの場合は、[Off]を選択します。 - [Mask Shape]エリアで、マスクの形状とサイズを選択します。
Erosion、Dilation、Closing、およびOpeningの操作にはマスクが必要です。 - [Region Splitting]エリアで、領域の接続されたコンポーネントを個別の領域に分割するかどうかを指定します。
分割は、モルフォロジー操作を最初に実行せずに、入力画像上で直接使用することもできます。
モルフォロジー操作の結果は、ピンデータビューで表示できます。ここで、表示する出力を選択できます。
入力#
領域#
1つまたは複数の領域を受け入れます。
- データ型:Region、Region Array
出力#
領域#
単一または複数の処理済み領域を返します。
- データ型:Region Array