Main Content

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

entropyfilt

グレースケール イメージの局所的なエントロピー

説明

J = entropyfilt(I) は、配列 J を返します。ここで、各出力ピクセルは、入力イメージ I 内の対応するピクセル周辺に 9 行 9 列の近傍のエントロピー値を含んでいます。

I の境界上のピクセルの場合、entropyfilt は対称性を利用したパディング方式を使用します。対称性を利用したパディング方式では、パディング ピクセルの値は I の境界ピクセルの鏡像です。

J = entropyfilt(I,nhood) は、近傍 nhood を使用して入力イメージ I のエントロピー フィルター処理を実行します。

すべて折りたたむ

この例では、entropyfilt を使用したエントロピー フィルター処理の実行方法を説明します。フィルター後のイメージ内の明るいピクセルは、元のイメージにあるエントロピーが高い近傍に対応します。

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

I = imread('circuit.tif');

entropyfilt を使用してエントロピー フィルター処理を実行します。

J = entropyfilt(I);

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

imshow(I)
title('Original Image')

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

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

Figure contains an axes object. The axes object with title Result of Entropy Filtering contains an object of type image.

入力引数

すべて折りたたむ

フィルター処理されるイメージ。任意の次元の数値配列として指定します。RGB イメージなど、入力イメージが 2 次元を超える場合 (ndims(I) > 2)、entropyfilt は高次元のすべての 2 次元平面をフィルター処理します。データ型 double および single の場合は、I の強度値が [0, 1] の範囲でなければなりません。

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

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

既定の設定では、entropyfilt は近傍 true(9) を使用します。近傍の中心要素は floor((size(nhood) + 1)/2) です。

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

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

出力引数

すべて折りたたむ

フィルター処理されたイメージ。入力イメージ I と同じサイズの数値配列として返されます。J のデータ型は double です。入力イメージ I がバイナリ イメージ (データ型 logical) の場合、J の値は [0, 1] の範囲内となります。I が他のすべてのデータ型の場合、J の値は [0, 8] の範囲内となります。

データ型: double

詳細

すべて折りたたむ

エントロピー

エントロピーとは乱雑さの統計的尺度であり、入力イメージのテクスチャを特徴付けるために使用することができます。

エントロピーは -sum(p.*log2(p)) で定義されます。ここで、p には imhist から返された正規化ヒストグラム数が格納されます。

ヒント

  • 既定では、entropyfilt は logical 配列では 2 ビンを使用します。entropyfilt はヒストグラム数計算のために他のクラスを uint8 に変換し、256 ビンを使用します。その結果、ピクセル値は離散的になりビン値に直接対応します。

  • 入力イメージ I がグレースケール イメージの場合、double 型のイメージを想定している一部の Image Processing Toolbox™ 関数では J の値が [0, 1] の範囲を超えることがあります。これらの関数に入力引数として J を渡すには、関数 rescale を使用して J の値を [0, 1] の範囲に再スケーリングします。

参照

[1] Gonzalez, R. C., R. E. Woods, and S. L. Eddins. Digital Image Processing Using MATLAB. New Jersey, Prentice Hall, 2003, Chapter 11.

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する