ドキュメンテーション

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

stdfilt

イメージの局所的な標準偏差

説明

J = stdfilt(I) は、イメージ I の標準偏差フィルター処理を実行して、フィルター処理されたイメージ J を返します。各出力ピクセルの値は、対応する入力ピクセル周辺の 3 行 3 列の近傍の標準偏差です。I の境界上のピクセルの場合、stdfilt は対称性を利用したパディング方式を使用します。対称性を利用したパディング方式では、パディング ピクセルの値は I の境界ピクセルの鏡像です。

オプションで、GPU を使用して演算を実行できます (Parallel Computing Toolbox™ が必要です)。詳細は、GPU での画像処理を参照

J = stdfilt(I,nhood) は、標準偏差の計算に使用される近傍 nhood を指定します。

すべて折りたたむ

この例では、stdfilt を使用した標準偏差フィルター処理の実行方法を説明します。フィルター後のイメージ内の明るいピクセルは、元のイメージの標準偏差が大きい近傍に対応します。

イメージをワークスペースに読み取ります。

I = imread('circuit.tif');

stdfilt を使用して標準偏差フィルター処理を実行します。

J = stdfilt(I);

元のイメージと処理後のイメージを表示します。

imshow(I)
title('Original Image')

figure
imshow(J,[])
title('Result of Standard Deviation Filtering')

イメージを gpuArray に読み取ります。

I = gpuArray(imread('circuit.tif'));

stdfilt を使用して標準偏差フィルター処理を実行します。

J = stdfilt(I);

元のイメージと処理後のイメージを表示します。

imshow(I)
title('Original Image')
figure
imshow(J,[])
title('Result of Standard Deviation Filtering')

入力引数

すべて折りたたむ

フィルター処理されるイメージ。任意の次元の数値配列または logical 配列として指定します。

GPU を使用して演算を実行するには、I を数値配列または logical 配列を含む gpuArray として指定します。

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

近傍。0 と 1 を含む多次元の logical 配列または数値配列として指定します。nhood のサイズは各次元で奇数でなければなりません。

既定の設定では、stdfilt は、近傍 true(3) を使用します。stdfilt は、floor((size(nhood) + 1)/2) により近傍の中心要素を決定します。

円板などの多様な形状の近傍を指定するには、関数 strel を使用して目的の形状の構造化要素オブジェクトを作成します。その後、構造化要素の neighborhood プロパティから近傍を抽出します。

メモ

この関数を GPU で実行する場合、近傍は 2 次元でなければなりません。

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

出力引数

すべて折りたたむ

フィルター処理されたイメージ。入力イメージ I と同じサイズの数値配列として返されます。J のクラスは double です。

フィルター処理されたイメージを GPU を使用して計算する場合、JI 内の配列と同じクラスの数値配列を含む gpuArray として返されます。

アルゴリズム

イメージに Inf または NaN が含まれている場合、stdfilt の動作は定義されません。Inf または NaN の伝播を Inf または NaN のピクセルの近傍のみに制限することはできない場合があります。

拡張機能

R2006a より前に導入