ドキュメンテーション

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

bwdistgeodesic

バイナリ イメージの測地線距離変換

説明

D = bwdistgeodesic(BW,mask) は、バイナリ イメージ BWmask で指定されるシード位置を与えられ、測地線距離変化を計算します。BWtrue である領域は、距離変換の計算中に遷移できる有効な領域を表します。BWfalse である領域は、距離変換の計算中に遷移できない制約される領域を表します。BW 内の true ピクセルごとに、測地線距離変換によって、そのピクセルから mask 内の最も近い true ピクセルまでの制約距離の数値が割り当てられます。出力行列 D には測地線距離が含まれます。

D = bwdistgeodesic(BW,C,R) は、バイナリ イメージ BW の測地線距離変換を計算します。ベクトル CR には、シード位置の列座標と行座標が含まれます。

D = bwdistgeodesic(BW,idx) は、バイナリ イメージ BW の測地線距離変換を計算します。idx はシード位置の線形インデックスのベクトルです。

D = bwdistgeodesic(___,method) は、method で指定した別の距離計量を使用して測地線距離変換を計算します。

すべて折りたたむ

この例で使用する、サンプル バイナリ イメージを作成します。

BW = [1 1 1 1 1 1 1 1 1 1;...
     1 1 1 1 1 1 0 0 1 1;...
     1 1 1 1 1 1 0 0 1 1;...
     1 1 1 1 1 1 0 0 1 1;...
     0 0 0 0 0 1 0 0 1 0;...
     0 0 0 0 1 1 0 1 1 0;...
     0 1 0 0 1 1 0 0 0 0;...
     0 1 1 1 1 1 1 0 1 0;...
     0 1 1 0 0 0 1 1 1 0;...
     0 0 0 0 1 0 0 0 0 0];
 BW = logical(BW);

2 つのシード位置ベクトルを作成します。

C = [1 2 3 3 3];
R = [3 3 3 1 2];

測地線距離変換を計算します。BW が false である出力ピクセルは、未定義の測地線距離をもち、NaN 値を含んでいます。シード位置から要素 BW(10,5) に接続されるパスがないため、出力 D(10,5)Inf の値になります。

D = bwdistgeodesic(BW,C,R)
D = 10x10 single matrix

     2     1     0     1     2     3     4     5     6     7
     1     1     0     1     2     3   NaN   NaN     6     7
     0     0     0     1     2     3   NaN   NaN     7     7
     1     1     1     1     2     3   NaN   NaN     8     8
   NaN   NaN   NaN   NaN   NaN     3   NaN   NaN     9   NaN
   NaN   NaN   NaN   NaN     4     4   NaN    10    10   NaN
   NaN     8   NaN   NaN     5     5   NaN   NaN   NaN   NaN
   NaN     8     7     6     6     6     6   NaN     8   NaN
   NaN     8     7   NaN   NaN   NaN     7     7     8   NaN
   NaN   NaN   NaN   NaN   Inf   NaN   NaN   NaN   NaN   NaN

入力引数

すべて折りたたむ

バイナリ イメージ。任意の次元の実数、非スパースの数値配列または logical 配列として指定します。数値入力の場合、非ゼロのピクセルは on であると見なされます。

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

シード位置。BW と同じサイズの logical 配列として指定します。

シード位置の行座標または列座標。正の整数のベクトルとして指定します。座標値は BW 内の有効な C,R 添字です。

シード位置の線形インデックス。正の整数のベクトルとして指定します。

距離計量。次のいずれかを指定します。

方法

説明

'chessboard'

2 次元の場合、(x1,y1) と (x2,y2) の間のチェス盤距離は、次のとおりです。

max(abs(x1-x2),abs(y1-y2))

'cityblock'

2 次元では、(x1,y1) と (x2,y2) の間のシティブロック距離は、次のとおりです。

abs(x1-x2) + abs(y1-y2)

'quasi-euclidean'

2 次元の場合、(x1,y1) と (x2,y2) の間の準ユークリッド距離は、次のとおりです。

|x1x2|+(21)|y1y2|, |x1x2|>|y1y2|

(21)|x1x2|+|y1y2|, otherwise.

データ型: char | string

出力引数

すべて折りたたむ

測地線距離。BW と同じサイズの数値配列として返されます。

データ型: single

アルゴリズム

bwdistgeodesic は、次の文献に記載されている測地線距離アルゴリズムを使用します。Soille, P., Morphological Image Analysis: Principles and Applications, 2nd Edition, Secaucus, NJ, Springer-Verlag, 2003, pp. 219–221.

R2011b で導入