ドキュメンテーション

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

gradientweight

イメージの勾配に基づいてイメージ ピクセルの重みを計算

構文

W = gradientweight(I)
W = gradientweight(I,sigma)
W = gradientweight(___,Name,Value,...)

説明

W = gradientweight(I) はイメージ I の各ピクセルの勾配の大きさに基づいて各ピクセルの重みを計算し、重み配列 W を返します。ピクセルの重みはそのピクセル位置における勾配値に反比例します。勾配が小さいピクセル (滑らかな領域) は重みが大きく、勾配が大きいピクセル (エッジ上など) は重みが小さくなります。

W = gradientweight(I,sigma) はイメージの勾配計算に使用するガウス関数の導関数の標準偏差として sigma を使用します。

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

すべて折りたたむ

この例では、イメージの勾配から導出された重みに基づいて高速マーチング法を使用してイメージをセグメント化します。

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

I = imread('coins.png');
imshow(I)
title('Original Image')

イメージの勾配に基づいて重みを計算します。

sigma = 1.5;
W = gradientweight(I, sigma, 'RolloffFactor', 3, 'WeightCutoff', 0.25);

シード位置を選択します。

R = 70; C = 216;
hold on;
plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);
title('Original Image with Seed Location')

重み配列を使用してイメージをセグメント化します。

thresh = 0.1;
[BW, D] = imsegfmm(W, C, R, thresh);
figure, imshow(BW)
title('Segmented Image')
hold on;
plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);

測地線距離行列 D に対してさまざまなしきい値でしきい値処理を行うと、異なるセグメンテーション結果が得られます。

figure, imshow(D)
title('Geodesic Distances')
hold on;
plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);

入力引数

すべて折りたたむ

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

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

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

ガウス関数の導関数の標準偏差。double クラスの正のスカラーとして指定します。

例: sigma = 1.0; W = gradientweight(I, sigma)

データ型: double

名前/値のペアの引数

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

例: W = gradientweight(I,1.5,'RolloffFactor',3,'WeightCutoff',0.25);

すべて折りたたむ

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

例: 'RolloffFactor',3

データ型: double

重み値のしきい値。double クラスの正のスカラーとして指定します。このパラメーターを使用して重み値にしきい値を設定すると、指定した値に満たない重み値はすべて抑制されます。これらのピクセルは小さい定数値 (1e-3) に設定されます。このパラメーターは、高速マーチング法のセグメンテーション関数 imsegfmm への入力として出力重み配列 W を使用するときに、出力の精度を改善するのに使用できます。

例: 'WeightCutoff',0.5

データ型: double

出力引数

すべて折りたたむ

重み配列。数値配列として返されます。この重み配列のサイズは入力イメージ I と同じです。この重み配列のクラスは、Isingle の場合は single、そうでない場合は double になります。

ヒント

  • Isingle クラスの場合には、gradientweight は内部的に単精度浮動小数点数演算を使用します。そうでない場合には、gradientweightI のすべてのクラスの内部計算に倍精度浮動小数点演算を使用します。

R2014b で導入

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