Main Content

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

rangefilt

イメージの局所的な範囲

説明

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

J = rangefilt(I,nhood) は、指定された近傍 nhood を使用して、イメージ I の局所的な範囲を返します。

すべて折りたたむ

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

I = imread('liftingbody.png'); 

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

J = rangefilt(I);

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

imshowpair(I,J,'montage')

この例では、テクスチャ フィルター関数を使用してイメージ内のテクスチャの領域を検出する方法を説明します。

イメージをワークスペースに読み取って表示します。図を見ると、背景は滑らかです。つまり、グレー レベルの変動がほとんどありません。前景を見ると、コインの表面のでこぼこにテクスチャが見られます。このイメージの前景ピクセルは背景より変動性が高いので、範囲値が高くなります。

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

関数 rangefilt でイメージをフィルター処理して、その結果を表示します。範囲フィルターはコインのエッジとでこぼこが見えるようにします。

K = rangefilt(I);
figure
imshow(K)

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

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 のサイズは各次元で奇数でなければなりません。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 より前に導入