Main Content

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

ヒストグラム均等化を使用したイメージ コントラストの調整

この例では、ヒストグラム均等化を使用してグレースケール イメージのコントラストを調整する方法を説明します。

ヒストグラム均等化には、出力イメージのヒストグラムを指定したヒストグラムに近似させるような強度値の変換が含まれています。既定の設定では、ヒストグラム均等化関数histeqは、出力イメージのピクセル値が範囲全体で均等に分散されるように、64 個のビンをもつ一様なヒストグラムに一致させようとします。カスタムのコントラストに合わせて別のターゲット ヒストグラムを指定することもできます。

元のイメージ ヒストグラム

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

I = imread("pout.tif");

イメージとヒストグラムを表示します。元のイメージは、コントラストが悪く、強度域の中位にほとんどのピクセル値が集中しています。

figure
subplot(1,3,1)
imshow(I)
subplot(1,3,2:3)
imhist(I)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

既定の均等化を使用したコントラストの調整

ヒストグラム均等化を使用してコントラストを調整します。ヒストグラム均等化関数 histeq の既定の動作を使用します。既定のターゲット ヒストグラムは、64 個のビンをもつ一様なヒストグラムです。

J = histeq(I);

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

figure
subplot(1,3,1)
imshow(J)
subplot(1,3,2:3)
imhist(J)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

ビンの数の指定によるコントラストの調整

指定するビンの数を変えて、コントラストを調整します。ビンの数を少なくすると、コントラストが調整されたイメージのグレー レベルは顕著に少なくなります。

nbins = 10;
K = histeq(I,nbins);

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

figure
subplot(1,3,1)
imshow(K)
subplot(1,3,2:3)
imhist(K)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

ターゲット分布の指定によるコントラストの調整

非フラットなターゲット分布を指定して、コントラストを調整します。この例では、線形に減少するターゲット ヒストグラムについて説明します。これは、小さいピクセル値を強調し、影をより暗く表示するようにします。ターゲット ヒストグラムを表示します。

target = 256:-4:4;
figure
bar(4:4:256,target)

Figure contains an axes object. The axes object contains an object of type bar.

イメージのヒストグラムがターゲット ヒストグラムにおおよそ一致するように調整します。

L = histeq(I,target);

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

figure
subplot(1,3,1)
imshow(L)
subplot(1,3,2:3)
imhist(L)

Figure contains 3 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line. Axes object 3 contains an object of type image.

参考

|

関連するトピック