ドキュメンテーション

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

graydist

グレースケール イメージのグレーで重み付けされた距離変換

構文

T = graydist(A,mask)
T = graydist(A,C,R)
T = graydist(A,ind)
T = graydist(...,method)

説明

T = graydist(A,mask) は、グレースケール イメージ A のグレーで重み付けされた距離変換を計算します。masktrue である位置はシード位置です。

T = graydist(A,C,R) はベクトル CR を使用して、シード位置の行座標と列座標を指定します。

T = graydist(A,ind) はベクトル ind を使用して、シード位置の線形インデックスを指定します。

T = graydist(...,method) は、別の距離計量を指定します。method は外側の伝播中に局所的な近傍に割り当てられる面の重みを判断します。測地線時間への各ピクセルの寄与は、ピクセル強度を乗じる特定方向の面の重みに基づきます。

入力引数

A

グレースケール イメージ。

mask

シード位置を指定する A と大きさが同じ論理イメージ。

C,R

シード位置の正の整数の行座標と列座標を含んでいる数値ベクトル。座標値は A 内の有効な C,R 添字です。

ind

シード位置の正の整数、線形インデックスの数値ベクトル。

method

距離計量のタイプ。method に次の値のいずれかを設定することができます。

メソッド説明

'cityblock'

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

'chessboard'

チェス盤距離は以下のとおりです。
max(│x1 – x2│,│y1 – y2│).

'quasi-
euclidean'

準ユークリッド距離は以下のとおりです。

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

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

既定値: 'chessboard'

出力引数

T

グレーで重み付けされた距離変換を指定する A と同じサイズの配列。A の入力数値タイプが double である場合は、T の出力数値タイプは double です。入力が他の数値タイプのいずれかである場合は、出力 T は single です。

クラス サポート

A は数値または論理値を取り、非スパースでなければなりません。maskA と同じサイズの論理配列です。CR および ind は正の整数値を含む数値ベクトルです。

出力 T は、A と同じサイズの配列です。A の入力数値タイプが double である場合は、出力 Tdouble です。入力が他の数値タイプのいずれかである場合は、出力 Tsingle です。

すべて折りたたむ

魔方陣を作成します。関数 magic で生成される行列では、行方向、列方向、対角方向の和が等しくなります。左上隅から右下隅までの最短パスは対角線に沿っています。

A  = magic(3)
A = 

     8     1     6
     3     5     7
     4     9     2

正方形の左上隅と右下隅をシード位置として指定して、グレーで重み付けされた距離変換を計算します。

T1 = graydist(A,1,1);
T2 = graydist(A,3,3);

2 つの変換の和によって、シード位置の間の最短パスを求めます。予想どおり、対角線上に定数値の最短パスがあります。

T  = T1 + T2
T = 

    10    11    17
    13    10    13
    17    17    10

アルゴリズム

graydist は測地線時間アルゴリズムを使用します。これは、Soille, P. 著「Generalized geodesy via geodesic time,」, Pattern Recognition Letters, vol.15, December 1994 の 1235 ~ 1240 ページに記述されています。

パスに沿った測地線時間の基本方程式は次のようになります。

τf(P)=f(po)2+f(pl)2+i=1l1f(pi)

R2011b で導入

この情報は役に立ちましたか?