ドキュメンテーション

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

rangefilt

イメージの局所的な範囲

説明

J = rangefilt(I) は、配列 J を返します。各出力ピクセルには、入力イメージ I の対応するピクセルの周りにある 3 × 3 の近傍の範囲値 (最大値 - 最小値) が含まれています。

J = rangefilt(I,nhood) は、nhood にある近傍を指定する入力イメージ I に対して範囲フィルター処理を実行します。nhood は、範囲フィルター処理を行うために非ゼロ要素が近傍を指定する 0 と 1 で構成される多次元配列です。

すべて折りたたむ

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

I = imread('liftingbody.png'); 

イメージをフィルター処理します。rangefilt は、配列を返します。各出力ピクセルには、入力イメージの対応するピクセルの周りにある 3 × 3 の近傍の範囲値 (最大値 - 最小値) が含まれています。

J = rangefilt(I);

元のイメージとフィルター処理されたイメージを並べて表示します。

imshowpair(I,J,'montage')

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

RGB = imread('autumn.tif'); 

RGB イメージを L*a*b* イメージに変換します。

LAB = rgb2lab(RGB);

LAB イメージで範囲フィルター処理を実行します。

rLAB = rangefilt(LAB);

イメージを表示します。

imshow(RGB);

figure, imshow(rLAB(:,:,1),[]);

figure, imshow(rLAB(:,:,2),[]);

figure, imshow(rLAB(:,:,3),[]);

イメージをワークスペースに読み取って表示します。

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

近傍を定義します。この例では、近傍は、入力ピクセルの左右のピクセル値の間に大きな差がある場合に大きな値を返します。フィルター処理は、入力ピクセルの上下のピクセルを考慮しません。したがって、この近傍は垂直エッジを強調します。

nhood = [1 1 1];

この近傍を使用して範囲フィルター処理を実行します。比較のために、既定の 3 行 3 列近傍を使用して範囲フィルター処理を実行します。結果を比較します。

J = rangefilt(I,nhood);
K = rangefilt(I);
figure
imshowpair(J,K,'montage');
title('Range filtering using specified neighborhood (left) and default neighborhood (right)');

指定した近傍を使用した結果は、予想どおり、垂直エッジを強調します。それと比較して、既定のフィルターはエッジの方向性には左右されません。

入力引数

すべて折りたたむ

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

データ型: double | uint8 | uint16 | uint32 | logical

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

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

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

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

出力引数

すべて折りたたむ

フィルター処理されたイメージ。符号付き整数データ型を除き、入力イメージ I と同じサイズとクラスの数値配列として返されます。符号付きデータ型に対する出力クラスは、対応する符号なし整数データ型になります。たとえば、I のクラスが int8 の場合、J のクラスは uint8 になります。

アルゴリズム

rangefilt は、モルフォロジー関数 imdilate および imerode を使用して、指定された近傍での最大値と最小値を決定します。その結果、rangefilt は、これらのモルフォロジー関数のパディング動作を使用します。

R2006a より前に導入