Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

imdiffuseest

異方性拡散フィルター処理用パラメーターの推定

説明

[gradientThreshold,numberOfIterations] = imdiffuseest(I) は異方性拡散を使用して、グレースケール イメージ I のフィルター処理に必要な勾配のしきい値と反復回数を推定します。

[gradientThreshold,numberOfIterations] = imdiffuseest(I,Name,Value) は、名前と値のペアを使用して、異方性拡散アルゴリズムの動作を変更します。

すべて折りたたむ

グレースケール イメージを読み取り、強力なガウス ノイズをそれに適用します。ノイズを含むイメージを表示します。

I = imread('pout.tif');
Inoisy = imnoise(I,'gaussian',0,0.005);
imshow(Inoisy)
title('Noisy Image')

イメージの異方性拡散フィルター処理に必要な勾配のしきい値と反復回数を推定します。

[gradThresh,numIter] = imdiffuseest(Inoisy)
gradThresh = 1x5 uint8 row vector

   64   50   39   34   29

numIter = 5

推定パラメーターと共に異方性拡散を使用して、ノイズを含むイメージをフィルター処理します。

Idiffuseest = imdiffusefilt(Inoisy,'GradientThreshold', ...
     gradThresh,'NumberOfIterations',numIter);

比較のため、既定のパラメーターと共に異方性拡散を使用して、ノイズを含むイメージもフィルター処理します。イメージのデータ型が uint8 であるので、既定の勾配のしきい値は 25.5 です。既定の反復回数は 5 です。

Idiffusedef = imdiffusefilt(Inoisy);

2 つのフィルター済みイメージを視覚的に比較します。

 montage({Idiffusedef,Idiffuseest},'ThumbnailSize',[])
 title(['Anisotropic Diffusion Filtering Using ' ...
     'Default Parameters (Left) vs. Estimated Parameters (Right)'])

既定のパラメーターを使用してフィルター処理されたイメージに一部のノイズが残っています。推定パラメーターを使用してフィルター処理されたイメージからノイズがほぼ完全になくなっています。両方のイメージのエッジの鮮鋭度、特に格子の周りや白い襟のように、コントラストが大きいエッジは、保存されます。

入力引数

すべて折りたたむ

フィルター処理されるイメージ。2 次元グレースケール イメージとして指定します。

データ型: single | double | int16 | uint8 | uint16

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: imdiffuseest(I,'Connectivity','minimal') は最小の連結性を使用して、イメージ I で異方性拡散に必要なパラメーターを推定します。

近傍とのピクセルの連結性。'Connectivity''maximal' または 'minimal' で構成されるコンマ区切りのペアとして指定します。最大連結性では、最も近い 8 個の近傍を考慮し、最小連結性では、最も近い 4 個の近傍を考慮します。

伝導法。'ConductionMethod' と、'exponential' または 'quadratic' で構成されるコンマ区切りのペアとして指定します。指数拡散は高コントラストのエッジを低コントラストのエッジより優先します。2 次拡散は大きい領域を小さい領域より優先します。

出力引数

すべて折りたたむ

勾配のしきい値。入力イメージ I と同じデータ型の数値ベクトルとして返されます。ベクトルの長さは numberOfIterations に等しくなります。

拡散プロセスで使用するための反復の回数。正の整数として返されます。

参照

[1] Perona, P., and J. Malik. "Scale-space and edge detection using anisotropic diffusion." IEEE® Transactions on Pattern Analysis and Machine Intelligence. Vol. 12, No. 7, July 1990, pp. 629–639.

[2] Tsiotsios, C., and M. Petrou. "On the choice of the parameters for anisotropic diffusion in image processing." Pattern Recognition. Vol. 46, No. 5, May 2013, pp. 1369–1381.

バージョン履歴

R2018a で導入