ドキュメンテーション

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

graydiffweight

グレースケール強度の差に基づくイメージ ピクセルの重み計算

構文

W = graydiffweight(I,refGrayVal)
W = graydiffweight(I,mask)
W = graydiffweight(I,C,R)
W = graydiffweight(V,C,R,P)
W = graydiffweight(___, Name,Value)

説明

W = graydiffweight(I,refGrayVal) はグレースケール イメージ I 内の各ピクセルの重みを計算します。重みは、ピクセルの強度とスカラー refGrayVal によって指定された参照グレースケール強度との差の絶対値です。セグメント化するオブジェクトの典型的な値を参照グレースケール強度値として選択します。重みは配列 W に入れて返されます。この配列のサイズは入力イメージ I と同じです。

ピクセルの重みはピクセル位置におけるグレースケール強度値の差の絶対値に反比例します。差が小さい (強度値が refGrayVal に近い) 場合、重み値は大きくなります。差が大きい (強度値が refGrayVal と大きく異なる) 場合、重み値は小さくなります。

W = graydiffweight(I,mask) はピクセルの重みを計算します。ここで、参照グレースケール強度値は mask で論理値 true とマークされている I 内のすべてのピクセルの平均強度値になります。参照グレースケール強度値を計算する場合、いくつかのピクセルの平均を使用した方が前の構文のように単一の参照強度値を使用するよりも効率的な場合があります。

W = graydiffweight(I,C,R) はピクセルの重みを計算します。ここで、参照グレースケール強度値はベクトル C および R で指定されるピクセル位置の平均強度値になります。CR は、ピクセル位置の列インデックスおよび行インデックスを格納します。これらは I の有効なピクセル インデックスでなければなりません。

W = graydiffweight(V,C,R,P) は、ベクトル CR および P で指定される、ボリューム V 内の各ボクセルの重みを計算します。CR および P はボクセル位置の列インデックス、行インデックス、平面インデックスを格納し、これらは V の有効なボクセル インデックスでなければなりません。

W = graydiffweight(___, Name,Value) は、重み計算の特性を制御する名前と値のペアを使用して、重み配列 W を返します。

すべて折りたたむ

この例では、シード位置の強度値から計算されたグレースケール強度の差を重みとして使用する高速マーチング法を使用してイメージ内のオブジェクトをセグメント化します。

イメージを読み取り、それを表示します。

I = imread('cameraman.tif');
imshow(I)
title('Original Image')

参照グレースケール強度値に使用するピクセルの行および列インデックスを指定します。

seedpointR = 159;
seedpointC = 67;

イメージのグレースケール強度の差の重み配列を計算し、それを表示します。例では、より良い可視化のために、W を対数スケールにしています。

W = graydiffweight(I, seedpointC, seedpointR,'GrayDifferenceCutoff',25);
figure, imshow(log(W),[])

グレースケール強度の差異の重み配列を使用してイメージをセグメント化します。重み配列の作成に使用したものと同じシード ポイント ベクトルを指定します。

thresh = 0.01;
BW = imsegfmm(W, seedpointC, seedpointR, thresh);
figure, imshow(BW)
title('Segmented Image')

入力引数

すべて折りたたむ

入力イメージ。グレースケール イメージとして指定します。非スパースでなければなりません。

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

入力ボリューム。3 次元グレースケール イメージとして指定します。非スパースでなければなりません。

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

参照グレースケール強度値。スカラーとして指定します。

データ型: double

参照グレースケール強度マスク。I と同じサイズの論理配列として指定します。

データ型: logical

参照ピクセル (またはボクセル) の列インデックス。数値 (整数値) ベクトルとして指定します。

データ型: double

参照ピクセル (またはボクセル) の行インデックス。数値 (整数値) ベクトルとして指定します。

データ型: double

参照ボクセルの平面インデックス。数値 (整数値) ベクトルとして指定します。

データ型: double

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: W = graydiffweight(I, seedpointC, seedpointR,'GrayDifferenceCutoff',25);

すべて折りたたむ

出力の重みのロールオフ係数。'RolloffFactor'double クラスの正のスカラーで構成されるコンマ区切りペアとして指定します。強度値と参照グレースケール強度の差の絶対値の関数で、出力の重みが低下する速さを制御します。ピクセルの強度値を 2 次元プロットで表示すると、値が領域のエッジで徐々に変化して緩やかな傾斜ができます。セグメント化されたイメージのエッジをはっきりさせたい場合があるかもしれません。ロールオフ係数を使用して、強度値が変化し始めるポイントにおける重み値の曲線の傾きをコントロールします。高い値を指定すると、出力の重み値が強度が変化する領域の周辺で急激に低下します。低い値を指定すると、出力の重みが強度が変化する領域の周辺で緩やかに低下します。このパラメーターで推奨される範囲は [0.5 4] です。

データ型: double

グレースケール強度の差の絶対値に対するしきい値。'GrayDifferenceCutoff'double クラスの非負のスカラーで構成されるコンマ区切りペアとして指定します。強度値の差にしきい値を設定すると、カットオフ値を超える出力の重み値が強く抑制されます。graydiffweight は、これらのピクセルに最小の重み値を割り当てます。このパラメーターは、高速マーチング法に基づくセグメンテーションで (imsegfmm への入力として) 出力の重み配列 W を使用する場合に、セグメンテーションの出力の正確性を向上させるのに役立つ場合があります。このパラメーターの既定値は Inf で、ハードなカットオフがないことを意味します。

データ型: double

出力引数

すべて折りたたむ

重み配列。I と同じサイズの数値配列として指定します。Isingle クラスの場合は Wsingle クラス、そうでない場合 Wdouble クラスです。

R2014b で導入

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