ドキュメンテーション

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

ヒストグラム均等化

強度値の調整処理は、"ヒストグラム均等化" を使用して自動的に実行できます。ヒストグラム均等化には、出力イメージのヒストグラムを指定したヒストグラムに近似させるような強度値の変換が含まれています。既定の設定では、ヒストグラム均等化関数 histeq は 64 個のビンをもつ一様なヒストグラムに一致させようとしますが、これと異なるヒストグラムを指定することもできます。

このグラフは、前の図の中のヒストグラムを反映していることに注意してください。つまり、入力値のほとんどが 0.3 と 0.6 の間にあるのに対し、出力値は 0 と 1 の間に均等に分布しています。

ヒストグラム均等化を使用する強度値の調整

この例では、ヒストグラム均等化を使用してグレースケール イメージのコントラストを調整する方法を説明します。元のイメージは、コントラストが悪く、強度域の中位にほとんどのピクセル値が集中しています。histeqは、ピクセル値が範囲全体に均等に分布するように出力イメージを作成します。

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

I = imread('pout.tif');

イメージとヒストグラムを表示します。

figure
subplot(1,2,1)
imshow(I)
subplot(1,2,2)
imhist(I,64)

ヒストグラム均等化を使用してコントラストを調整します。この例にあるヒストグラム均等化関数 histeq は既定の動作として、64 個のビンをもつ一様なヒストグラムに一致させようとします。代わりに、異なるヒストグラムを指定することもできます。

J = histeq(I);

コントラストが調整されたイメージと新しいヒストグラムを表示します。

figure
subplot(1,2,1)
imshow(J)
subplot(1,2,2)
imhist(J,64)

ヒストグラム均等化の変換曲線のプロット

この例では、ヒストグラム均等化の変換曲線をプロットする方法を説明します。関数 histeq は、可能な各入力値に対応する結果の出力値を示す 1 行 256 列のベクトルを出力します (このベクトルの値は、入力イメージのクラスに関係なく、[0,1] の範囲に入ります)。このデータをプロットして、変換曲線を表示できます。

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

I = imread('pout.tif');

ヒストグラム均等化の関数 histeq を使用してコントラストを調整します。グレースケール変換の戻り値 T を指定します。これは強度イメージ I のグレー レベルから J のグレー レベルへのマッピングを示すベクトルです。

[J,T] = histeq(I);

変換曲線をプロットします。このグラフは、前の図の中のヒストグラムを反映していることに注意してください。つまり、入力値のほとんどが 0.3 と 0.6 の間にあるのに対し、出力値は 0 と 1 の間に均等に分布しています。

figure
plot((0:255)/255,T);