Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

edge3

3 次元強度ボリューム内のエッジの検出

説明

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

近似 Canny 法では、強いエッジと弱いエッジを検出するために 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);

volshow を使用してボリュームを表示します。

volshow(V);

近似キャニー法を指定して edge3 を使用し、ボリューム内のエッジを検出します。

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

volshow を使用して、検出されたエッジを表示します。

volshow(BW);

入力引数

すべて折りたたむ

入力ボリューム。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 で導入