ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

モルフォロジー演算のタイプ

"モルフォロジー" とは、イメージを処理する過程で形状ベースの画像処理操作の総称です。モルフォロジー演算は、構造化要素を入力イメージに適用し、同じサイズの出力イメージを作成します。モルフォロジー演算では、出力イメージ内の各ピクセルの値は入力イメージ内の対応するピクセルと近傍との比較に基づいています。

モルフォロジーの膨張と収縮

最も基本的なモルフォロジー演算は膨張と収縮です。膨張はイメージ内のオブジェクトの境界にピクセルを加えます。一方、収縮は境界のピクセルを除去します。イメージ内のオブジェクトに加えたり、オブジェクトから削除するピクセルの数は、イメージを処理するために使用する "構造化要素" のサイズと形状により異なります。モルフォロジーな膨張と収縮操作において、出力イメージの中の任意に与えられたピクセルの状態は、入力イメージのピクセルとその近傍に対して適用するルールにより決定されます。ピクセルを処理するために使用されるルールによって、膨張または収縮のいずれの操作をするかが定義されます。次の表は、膨張と収縮に関するルールを示します。

膨張と収縮に関するルール

操作

ルール

例 (元のイメージと処理されたイメージ)

膨張

出力ピクセル値は、近傍の中ですべてのピクセルの "最大" 値です。バイナリ イメージの場合、近傍のピクセルの中に値 1 のものが存在すると、ピクセルは 1 になります。

モルフォロジー膨張によりオブジェクトの可視性が増し、オブジェクト内の小さな穴が埋まります。

収縮

出力ピクセル値は、近傍の中ですべてのピクセルの "最小" 値です。バイナリ イメージの場合、近傍のピクセルの中に値 0 のものが存在すると、ピクセルは 0 になります。

モルフォロジー収縮により孤立した領域や小さなオブジェクトがなくなり、実質的なオブジェクトだけが残ります。

次の図は、バイナリ イメージの膨張を示しています。構造化要素が対象となるピクセル (丸印で表示) の近傍をどのように定義するかを確認してください。膨張関数は、近傍のピクセルにルールを適用し、出力イメージの対応する場所に値を出力します。図の中で、モルフォロジー膨張関数は構造化要素で定義された近傍の中の要素の 1 つが "on" であるため、出力ピクセルの値を 1 に設定します。詳細については、構造化要素を参照してください。

バイナリ イメージのモルフォロジー膨張処理

次の図は、この処理をグレースケール イメージに対して行った場合を示しています。図は、入力イメージの中で特定したピクセルの処理を示しています。関数がどのようにして、入力ピクセルの近傍にルールを適用しているか、出力イメージの中の対応するピクセルの値として近傍内のすべてのピクセルの中での最高値を使用しているかを確認してください。

グレースケール イメージのモルフォロジー膨張処理

膨張と収縮に基づく演算

膨張と収縮は、画像処理演算を行う場合に組み合わせて使用されることが頻繁にあります。たとえば、イメージのモルフォロジー オープニングの定義は、同じ構造化要素を使用して収縮を行い、その後で膨張を行います。膨張と収縮を組み合わせてイメージから小さなオブジェクトを除去し、大きなオブジェクトの境界を滑らかにすることができます。

次の表は、ツールボックスで用意されている、膨張と収縮をベースにした共通のモルフォロジー演算を実行する関数の一覧です。

関数

モルフォロジーな定義

例 (元のイメージと処理されたイメージ)

imopen

モルフォロジー オープニングを実行します。オープニング演算は、イメージを収縮させてから、その収縮したイメージを膨張させます。両方の演算で同じ構造化要素を使用します。

モルフォロジー オープニングは、イメージから小さなオブジェクトを除去し、イメージ内のより大きなオブジェクトの形状とサイズはそのままにする場合に便利です。たとえば、モルフォロジー オープニングを使用した大きなイメージの特徴の抽出を参照してください。

imclose

モルフォロジー クロージングを実行します。クロージング演算は、イメージを膨張させてから、その膨張したイメージを収縮させます。両方の演算で同じ構造化要素を使用します。

モルフォロジー クロージングは、イメージの小さな穴を塗りつぶし、イメージ内のオブジェクトの形状とサイズはそのままにする場合に便利です。

bwskel

バイナリ イメージ内のオブジェクトを "骨格化" します。骨格化のプロセスでは、存在している穴や分岐など、オブジェクトの本質的な構造を変えないで、すべてのオブジェクトを中心線に収縮させます。

bwperim

バイナリ イメージのオブジェクトの周囲を検出します。ピクセルは、非ゼロの場合、周囲の一部です。また、ゼロの値をとる少なくとも 1 つのピクセルに連結しています。

bwhitmiss

バイナリ ヒットミス変換を実行します。ヒットミス変換は、バイナリ イメージの近傍が 1 つの構造化要素の形状と一致し、重ならない 2 番目の構造化要素の形状とは一致しないピクセルを維持します。

ヒットミス変換を使用して、イメージ内のパターンを検出できます。

この例では、中心の右上に近傍がある 1 つの構造化要素と、中心の左下に近傍がある 2 番目の構造化要素を使用します。変換を行うと、右上にのみ近傍があるピクセルが維持されます。

imtophat

モルフォロジー トップハット変換を実行します。トップハット変換は、イメージのオープニングを行い、オープニング後のイメージを元のイメージから取り除きます。

トップハット変換は、不均一な明るさのグレースケール イメージでコントラストの強調に使用できます。変換によって、イメージ内の小さな明るいオブジェクトを分離することもできます。

imbothat

モルフォロジー ボトムハット変換を実行します。ボトムハット変換は、イメージのクロージングを行って、クロージング後のイメージから元のイメージを取り除きます。

ボトムハット変換は、グレースケール イメージの中の強度トラフの検出に使用できます。

参考

| | |

関連するトピック