主要内容

activecontour

動的輪郭(蛇)領域拡張法を使用した前景と背景へのメジのセグメント化

説明

"動的輪郭"法は,“蛇”とも呼ばれる,反復的な領域拡張を行うメジセグメンテションアルゴリズムです。動的輪郭アルゴリズムを使用して,activecontourを使用して,オブジェクト境界に向かってカ,ブを変化させます。

BW= activecontour (一个面具は,動的輪郭を使用して,一个を前景(オブジェクト)領域と背景領域にセグメント化します。

面具引数は,動的輪郭の初期状態を指定するバ@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @面具内のオブジェクト領域(白)の境界は,イメージのセグメント化で輪郭を変化させるために使用する初期輪郭の位置を定義します。出力▪▪メ▪▪ジBWは,前景が白(逻辑真正的),背景が黒(合乎逻辑)のバe .ナリe .メe .ジです。

セグメンテーションの結果をより高速にかつ正確に取得するには,目的とするオブジェクト境界に近い初期輪郭の位置を指定してください。

BW= activecontour (一个面具nは,最大n回の反復で輪郭を変化させることで▪▪メ▪▪ジをセグメント化します。

BW= activecontour (一个面具方法は,セグメンテ,ションに使用される動的輪郭法として,“Chan-Vese”“边缘”のいずれかを指定します。RGB转换器メ,ジの場合のメソッドは“Chan-Vese”でなければなりません。

BW= activecontour (一个面具n方法は,指定された方法を使用して,最大n回の反復で輪郭を変化させることにより▪▪メ▪▪ジをセグメント化します。

BW= activecontour (___名称,值は,セグメンテ,ションのさまざまな特性を制御する名前と値のペアの引数を指定します。

すべて折りたたむ

グレスケルメジを読み取り,それを表示します。

I = imread(“coins.png”);imshow (I)标题(原始图像的

图中包含一个轴对象。标题为Original Image的axes对象包含一个Image类型的对象。

関心のあるオブジェクトの周囲の初期輪郭を指定します。輪郭を表示します。

mask = 0 (size(I));掩码(25:end-25,25:end-25) = 1;imshow(面具)标题(“初始轮廓位置”

图中包含一个轴对象。标题为“初始轮廓位置”的axis对象包含一个图像类型的对象。

関数activecontourを使用して,。既定では,この関数は100回反復してセグメンテ,ションを行います。

bw = activecontour(I,mask);

結果を表示します。元の輪郭がオブジェクト境界の近くにないため,100回の反復後でも,オブジェクトは背景から完全にはセグメント化されていません。

imshow (bw)标题(“分割图像,100次迭代”

图中包含一个轴对象。标题为“Segmented Image, 100 Iterations”的axes对象包含一个Image类型的对象。

セグメンテ,ションを続けるには,反復回数を増やします。300回の反復後,オブジェクトが背景から完全にセグメント化されます。

bw = activecontour(I,mask,300);imshow (bw)标题(“分割图像,300次迭代”

图中包含一个轴对象。标题为“Segmented Image, 300 Iterations”的axes对象包含一个Image类型的对象。

グレスケルメジを読み取り,それを表示します。

I = imread(“toyobjects.png”);imshow(我)

関数drawrectangleを使用して,関心のあるオブジェクトの近くに初期輪郭を描画します。輪郭の描画後,関数createMaskを使用して,マスクを作成します。

R = drawrectangle;

mask = createMask(r);

“边缘”メソッドと200回の反復を使用してメジをセグメント化します。

bw = activecontour(I,mask,200,“边缘”);

最終的な輪郭を元の▪▪メ▪▪ジ上に赤で表示します。

持有;visboundaries (bw,“颜色”“r”);

セグメンテションの結果を元のメジ上に表示します。前景のオブジェクトは青色になっています。

图imshow (labeloverlay(我,bw));

3次元ボリュムメジデタを読み込み,大きさが1の次元を削除します。

D =负载(“mri.mat”);A =挤压(D.D);

初期シドポントの2次元マスクを作成します。

seedLevel = 10;seed = A(:,:,seedLevel) > 75;图imshow(种子)

图中包含一个轴对象。axis对象包含一个image类型的对象。

空の3次元シドマスクを作成し,そこにシドポントを挿入します。

mask = 0 (size(A));mask(:,:,seedLevel) = seed;

動的輪郭でシ,ドマスクを指定して,セグメンテ,ションを実行します。

bw = activecontour(A,mask,300);

セグメント化された3次元。

图;P = patch(isosurface(double(bw)));p.FaceColor =“红色”;p.EdgeColor =“没有”;Daspect ([1 1 27/128]);camlight;照明冯氏

图中包含一个轴对象。axis对象包含一个patch类型的对象。

入力引数

すべて折りたたむ

セグメント化される▪▪メ▪▪ジ。2 次元数値行列または3 次元数値配列として指定します。

デ,タ型:||int8|int16|int32|uint8|uint16|uint32

セグメンテ,ションの始まりとなる初期輪郭であり,一个と同じサ▪▪ズのバ▪▪ナリ▪▪メ▪▪ジとして指定されます。2次元および3次元グレスケルメジの場合,面具のサ@ @ズは@ @メ@ @ジ一个のサ@ @ズと同じでなければなりません。カラ面具は2次元逻辑配列で,最初の2次元がメジ一个の最初の2次元と同じでければなりません。

ROIオブジェクトを使用して,マスクを対話的に作成できます。たとえば,関数drawpolygonを使用して多角形ROIを描画し,次に関数createMaskを使用して,そのROIからマスクを作成します。

デ,タ型:逻辑

セグメンテ,ションの変化で実行する反復の最大回数。正の整数として指定します。activecontourは,最大反復回数に達したときに,動的輪郭の変化を停止します。また,activecontourは,現在の反復における輪郭位置が直近の5回の反復のいずれかと同じ場合にもその変化を停止します。

初期輪郭の位置(面具で指定)がオブジェクトの境界から遠い場合,目的のセグメンテーション結果を得るためには,より大きい値をnに指定します。

セグメンテ,ションに使用される動的輪郭法。“Chan-Vese”または“边缘”として指定します。Chan-Vese領域ベ、スのエネルギ、モデルに、いては、[1]に説明があります。測地線動的輪郭と類似のエッジベスのモデルにいては,[2]に説明があります。

RGB转换器メ,ジの場合のメソッドは“Chan-Vese”でなければなりません。

デ,タ型:字符|字符串

名前と値の引数

オプションの引数のペアをName1 = Value1,…,以=家として指定します。ここで,的名字は引数名で,价值は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例:SmoothFactor = 1.5

R2021aより前では,コンマを使用して名前と値の各ペアを区切り,的名字を引用符で囲みます。

例:“SmoothFactor”,1.5

セグメント化された領域の境界の滑らかさまたは均一性の度合い。非負の数値として指定します。値を高くすると領域の境界は滑らかになりますが,詳細部分が除かれる可能性もあります。値が低いと領域境界が不均一になり(滑らかさが失われ)ますが,詳細部分が捉えられるようになります。既定の滑らかさの値は,“Chan-Vese”法の場合は0“边缘”法の場合は1です。

デ,タ型:||int8|int16|int32|uint8|uint16|uint32

輪郭が外側に拡大するか内側に縮小する傾向。数値として指定します。正の値は内側に縮小するバ▪▪アスを輪郭に設定します(縮小)。負の値は外側に拡大するバ▪▪アスを輪郭に設定します(拡大)。この引数は輪郭を縮小または拡大する保証にはなりません。この引数が正の値であっても,実際には輪郭が拡大する可能性があります。ただし,バaapl .アスが設定されていない輪郭と比べ,バaapl .アスを指定することで拡大は鈍化します。この引数の典型的な値は-1から1までになります。既定の縮小バ电子邮箱アスは,“Chan-Vese”法の場合は0“边缘”法の場合は0.3です。

デ,タ型:||int8|int16|int32|uint8|uint16|uint32

出力引数

すべて折りたたむ

セグメント化された▪▪メ▪▪ジ。入力▪▪メ▪▪ジ一个と同じサescズの逻辑配列として返されます。前景は白(合乎逻辑真正的),背景は黒(合乎逻辑)です。

デ,タ型:逻辑

ヒント

  • activecontourは,変化を開始する輪郭の初期状態として,面具の領域の境界を使用します。マスクにある穴によって予測できない結果が生じる可能性があります。imfillを使用して,面具の領域の穴を塗りぶしてください。

  • 領域がメジの境界と接触している場合,activecontourは,処理を進める前に領域から単一ピクセルのレイヤーを削除し,領域がイメージの境界に接触しないようにします。

  • 特に“边缘”メソッドの場合,結果をより高速かつ正確に取得するには,目的とするオブジェクト境界に近い初期輪郭の位置を指定してください。

  • “边缘”メソッドでは,動的輪郭が内側へと縮小する(閉じる)ように自然にバesc escアスがかけられます。。一方,輪郭にバ“Chan-Vese”メソッドでは,。

  • “边缘”メソッドで正確なセグメンテーションを実現するには,初期輪郭をオブジェクトの境界の外側に配置するように指定してください。“边缘”メソッドを使用した動的輪郭は,既定では縮小するバ。

  • オブジェクト領域でグレ,スケ,ルの強度が大きく異なる場合,“Chan-Vese”メソッド[1]では,。たとえば,化学键メ,化学键ジに背景よりも明るいオブジェクトと暗いオブジェクトが含まれる場合,化学键通常,“Chan-Vese”メソッドでは,明るいオブジェクトか暗いオブジェクトのどらか一方のみがセグメント化されます。

アルゴリズム

activecontourは,動的輪郭の変化を実装するために,[3]で説明されているメソッドと類似した很少涉及的领域水平集メソッドを使用します。

参照

[1] t.f. Chan, l.a. Vese,无边缘的主动轮廓。IEEE图像处理汇刊,第10卷,第2期,第266-277页,2001。

V. Caselles, R. Kimmel, G. Sapiro,测地线活动轮廓。国际计算机视觉杂志,第22卷,第1期,第61-79页,1997。

R. T.惠特克,一种从距离数据进行三维重建的水平集方法。国际计算机视觉杂志,第29卷,第3期,第203-231页,1998。

バ,ジョン履歴

R2013aで導入