Main Content

edge3

3 次元グレースケール ボリューム内のエッジの検出

説明

BW = edge3(V,"approxcanny",thresh) は、近似キャニー法を使用して、グレースケール ボリュームまたはバイナリ ボリューム V で検出されたエッジを返します。近似キャニー法は、V の勾配の局所的最大値を求めることでエッジを検出します。edge3 は、ガウス平滑化ボリュームの微分を使用して勾配を計算します。

近似キャニー法では、強いエッジと弱いエッジを検出するために 2 つのしきい値が使用されます。強いエッジと連結している場合にのみ、弱いエッジも出力されます。この方法は、弱いエッジを正確に検出できる可能性がソーベル法よりも高くなります。

BW = edge3(V,"approxcanny",thresh,sigma) は、強度またはバイナリ ボリューム V で検出されたエッジを返します。sigma は、ガウス平滑化フィルターの標準偏差を指定します。edge3 は、sigma に基づいて、フィルターのサイズを自動的に選択します。

BW = edge3(V,"Sobel",thresh) は、強度またはバイナリ ボリューム V を受け入れ、1 (V で関数がエッジを検出した場所) と 0 (その他の場所) を含むバイナリ ボリューム BW を返します。

ソーベル法では微分係数にソーベル近似を使用してエッジを検出します。V の勾配が最大である点のエッジを返します。edge3 は強度が thresh 以下のエッジをすべて無視します。

BW = edge3(V,"Sobel",thresh,"nothinning") は、追加のエッジ細線化段階をスキップして、アルゴリズムの動作を高速化します。既定、または "thinning" が指定されている場合、edge3 はエッジ細線化を適用します。

すべて折りたたむ

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

load mri
V = squeeze(D);

元のイメージを可視化します。

montage(reshape(V,size(D)),map);

Figure contains an axes object. The axes object contains an object of type image.

ボリューム内のエッジを検出します。

BW = edge3(V,'approxcanny',0.6);

検出されたエッジを可視化します。ボリューム ビューアー アプリを使用して結果を表示することもできます。

montage(reshape(BW,size(D)))

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

入力ボリューム。3 次元の数値配列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

感度のしきい値。次のいずれかを指定します。

メソッドしきい値
キャニー数値スカラー
近似キャニー2 要素の数値の行ベクトル。最初の要素が下方のしきい値であり、2 番目の要素が上方のしきい値である [lowthresh highthresh] です。
上方のしきい値を表す数値スカラー。edge3 は下方のしきい値を 0.4*thresh として設定します。
ソーベル

数値スカラー

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

ガウス フィルターの標準偏差。等方性ボリュームの場合は数値スカラーとして指定し、方向ごとにスケールが異なる異方性ボリュームの場合は [SigmaX SigmaY SigmaZ] 形式の 1 行 3 列の数値ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

出力引数

すべて折りたたむ

検出されたエッジ。V と同じサイズの 3 次元数値配列として返されます。ピクセル値 1 はエッジを示し、ピクセル値 0 は平坦な領域を示します。

拡張機能

バージョン履歴

R2017b で導入

すべて展開する

参考