ドキュメンテーション

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

graydiffweight

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

構文

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

説明

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

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

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

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

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')

入力引数

すべて折りたたむ

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

例: I = imread(‘cameraman.tif’);

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

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

例: 110

データ型: double

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

例: mask = false(size(I)); mask(170,70) = true;

データ型: logical

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

例: C = [50,70];

データ型: double

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

例: R = [50,90];

データ型: double

名前/値のペアの引数

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

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

すべて折りたたむ

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

例: 'RolloffFactor',3

データ型: double

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

例: 'GrayDifferenceCutoff',25

データ型: double

出力引数

すべて折りたたむ

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

R2014b で導入

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