Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

イメージの領域分割で動的輪郭を使用したイメージのセグメント化

この例では、イメージの領域分割アプリで動的輪郭 ("snakes" とも呼ばれる) を使用して、イメージをセグメント化する方法を説明します。動的輪郭は自動反復型メソッドです。イメージ内で領域を描画することで ("シード マスク" と呼ばれます) 場所をマークします。動的輪郭は、これらのシード形状を拡張 (または縮小) し、イメージ内にある領域の境界を塗りつぶします。この初期シード マスクの精度は、最終結果に影響する可能性があります。動的輪郭では [テクスチャの特徴を含む] オプションも使用可能です。

イメージの領域分割アプリは、複数種類のセグメンテーション手法を提供しています。また、このアプリの使用は反復して実行することができます。目的の結果が得られるまで異なるメソッドをいくつか試すことができます。

イメージの領域分割でのイメージの読み込み

イメージの領域分割アプリを開き、セグメント化するイメージを読み込みます。このアプリは、imread で読み取り可能なファイルであれば開くことができます。

この例では、イメージをワークスペースに読み取ります。この例では、膝の MRI イメージを使用します。目標は、イメージ内の軟組織から骨をセグメント化するマスク イメージを作成することです。

I = dicomread("knee1");
knee = mat2gray(I);

MATLAB® ツールストリップから、イメージの領域分割アプリを開きます。[アプリ] タブの [イメージ処理とコンピューター ビジョン] セクションで [イメージの領域分割] をクリックします。

アプリのツールストリップで、[読み込み] をクリックしてから、[ワークスペースからのイメージの読み込み] を選択します。[ワークスペースからインポート] ダイアログ ボックスで、ワークスペースに読み取ったイメージを選択します。イメージの領域分割アプリに、選択したイメージが表示されます。

SegmentAnImageActiveContoursInImageSegExample_02.png

次のように imageSegmenter コマンドを使用して、イメージの領域分割アプリでイメージを開くこともできます。

imageSegmenter(knee);

イメージを読み込んだ後は、オプションで既存のバイナリ マスクを読み込むことができます。たとえば、色のしきい値アプリで RGB イメージのマスクを過去に作成しており、このセグメンテーションを調整したいとします。既存のマスクを読み込むには、[マスクの読み込み] をクリックします。セグメンテーション マスク イメージは、セグメンテーションを行うイメージと同じサイズの論理イメージにしなければなりません。

動的輪郭を使用したイメージのセグメント化

動的輪郭を使用してイメージをセグメント化するには、まずセグメンテーションの大まかな推定を作成しなければなりません。たとえば、ROI ツールを使用して、イメージの大まかな推定を作成できます (イメージの領域分割を使用した領域描画によるイメージのセグメント化を参照してください)。既存のバイナリ マスク イメージを読み込むこともできます。

この例では、ROI ツールを使用して、セグメント化する領域内にシード形状を作成します。領域の描画が終了したら、[適用] をクリックしてから [ROI を閉じる] をクリックし、[セグメンテーション] タブに戻ります。

SegmentAnImageActiveContoursInImageSegExample_03.png

[セグメンテーション] タブで、ツールストリップの [マスクの調整] セクションから [動的輪郭] をクリックします。イメージの領域分割アプリの [動的輪郭] タブが開きます。

動的輪郭を使用するには、[実行] をクリックします。シード マスクを拡大する反復動作の実行が開始され、オブジェクトが境界まで塗りつぶされます。最初は、既定の動的輪郭メソッド (領域ベース) と既定の反復回数 (100) を使用します。イメージの領域分割の右下隅に処理の進行状況が表示されます。結果を見ると、この手法は 3 つのオブジェクトのうち 2 つでうまく行きましたが、1 つのオブジェクトではセグメンテーションが背景にはみ出していることがわかります。この領域ではオブジェクトの境界がはっきりしていません。

SegmentAnImageActiveContoursInImageSegExample_04.png

より適切なセグメンテーションを実現するための 1 つの方法は、動的輪郭を繰り返して、反復回数を減らすことです。反復ボックスで反復回数を 35 に変更し、再度 [実行] をクリックします。今回は、セグメンテーションが背景にはみ出していません。

SegmentAnImageActiveContoursInImageSegExample_05.png

セグメンテーションを保存するには、[適用] をクリックします。[セグメンテーション] タブに戻るには、[動的輪郭を閉じる] をクリックします。

マスク イメージを表示するには、[セグメンテーション] タブで [バイナリの表示] をクリックします。イメージの領域分割アプリで、[境界のクリア] または [穴の塗りつぶし] などのその他のツールを使用すると、マスク イメージを調整できます。マスク イメージをワークスペースに保存するには、[エクスポート] をクリックします。

SegmentAnImageActiveContoursInImageSegExample_06.png

参考

|

関連するトピック