Main Content

히스토그램 평활화를 사용하여 영상 대비 조정하기

이 예제에서는 히스토그램 평활화를 사용하여 회색조 영상의 대비를 조정하는 방법을 보여줍니다.

히스토그램 평활화에서는 출력 영상의 히스토그램이 지정된 히스토그램과 거의 일치하도록 명암 값을 변환하는 작업이 수반됩니다. 기본적으로 히스토그램 평활화 함수 histeq는 출력 영상의 픽셀 값이 범위 전체에 걸쳐 고르게 분포되도록 64개의 Bin을 갖는 평평한 히스토그램을 매칭하려고 시도합니다. 사용자 지정 대비와 일치하도록 다른 목표 히스토그램을 지정할 수도 있습니다.

원본 영상 히스토그램

회색조 영상을 작업 공간으로 읽어 들입니다.

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. Hidden axes object 3 contains an object of type image.

디폴트 평활화를 사용하여 대비 조정하기

히스토그램 평활화를 사용하여 대비를 조정합니다. 히스토그램 평활화 함수 histeq의 디폴트 동작을 사용합니다. 디폴트 목표 히스토그램은 64개의 Bin을 갖는 평평한 히스토그램입니다.

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. Hidden axes object 3 contains an object of type image.

Bin 개수를 지정하여 대비 조정하기

Bin 개수를 다르게 지정하여 대비를 조정합니다. Bin 개수가 적으면 대비가 조정된 영상의 회색 레벨 수가 눈에 띄게 줄어듭니다.

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. Hidden 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. Hidden axes object 3 contains an object of type image.

참고 항목

|

관련 항목