적응 히스토그램 평활화를 사용하여 대비 조정하기
이 예제에서는 대비 제한 적응 히스토그램 평활화(CLAHE: Contrast-Limited Adaptive Histogram Equalization)를 사용하여 영상의 대비를 조정하는 방법을 보여줍니다.
histeq를 사용하는 대신 adapthisteq 함수를 사용하여 CLAHE를 수행할 수 있습니다. histeq는 전체 영상에서 작동하지만 adapthisteq는 타일이라고 하는 영상의 작은 영역에 대해 연산을 수행합니다. adapthisteq 함수는 출력 영역의 히스토그램이 지정된 히스토그램과 거의 일치하도록 각 타일의 대비를 향상시킵니다. 평활화를 수행한 후에 adapthisteq는 인위적으로 만든 경계선을 제거하기 위해 쌍선형 보간을 사용하여 이웃 타일을 결합합니다.
영상에 있을 수도 있는 잡음의 증폭을 방지하기 위해 adapthisteq 이름-값 인수를 사용하여 특히 동질 영역에서 타일 형식 배열 스키마를 조정하고 대비를 제한할 수 있습니다.
원본 영상 히스토그램
영상을 작업 공간으로 읽어 들입니다.
I = imread("pout.tif");원본 영상과 해당 히스토그램을 표시합니다.
figure subplot(1,2,1) imshow(I) subplot(1,2,2) imhist(I,64)

디폴트 적응 평활화를 사용하여 대비 조정하기
적응 히스토그램 평활화를 사용하여 영상의 대비를 조정합니다. 기본적으로 adapthisteq는 영상을 8×8 타일 형식 그리드로 나누고, Bin 256개를 사용하고 자르기 제한값이 0.01인 균등분포를 사용하여 각 타일을 조정합니다.
J = adapthisteq(I);
대비가 조정된 영상을 해당 히스토그램과 함께 표시합니다.
figure subplot(1,2,1) imshow(J) subplot(1,2,2) imhist(J,64)

타일 개수를 지정하여 대비 조정하기
타일 개수를 다르게 지정하여 대비를 조정합니다. 타일 개수를 늘리면 국소 대비가 더 향상되어 타일 간 경계가 더욱 두드러질 수 있습니다.
numTiles =
20numTiles = 20
J = adapthisteq(I,NumTiles=[numTiles numTiles]);
대비가 조정된 영상과 그 영상의 새로운 히스토그램을 표시합니다.
figure subplot(1,2,1) imshow(J) subplot(1,2,2) imhist(J,64)

자르기 제한값을 지정하여 대비 조정하기
자르기 제한값을 다르게 지정하여 대비를 조정합니다. 자르기 제한값은 각 타일의 대비 향상 정도를 제어하여 과포화와 잡음 증폭을 방지합니다. 자르기 제한값은 ClipLimit 이름-값 인수를 사용하여 범위 [0, 1] 내에서 지정할 수 있습니다. 값이 1에 가까울수록 잡음이 증폭할 위험이 있지만 대비가 향상됩니다. 디폴트 값은 0.01입니다.
clipLim =
0.03;
J = adapthisteq(I,ClipLimit=clipLim);대비가 조정된 영상을 해당 히스토그램과 함께 표시합니다. 자르기 제한값을 0.03으로 사용하면 디폴트 자르기 제한값에 비해 영상 대비가 향상되고 균등분포가 더 고르게 이루어집니다.
figure subplot(1,2,1) imshow(J) subplot(1,2,2) imhist(J,64)

목표 분포를 지정하여 대비 조정하기
각 타일의 목표 분포를 지정하여 대비를 조정합니다. 기본적으로 이 함수는 대비를 전체 명암 값 범위에 걸쳐 최대화하는 균등분포를 목표로 합니다. 또는 지수 분포 또는 레일리 분포를 지정할 수 있는데, 이 두 분포는 밝은 값보다 낮은 명암 값을 더 크게 향상시키는 경향이 있습니다. 일반적으로 입력 영상의 유형에 따라 다른 분포를 선택하게 됩니다. 예를 들어 레일리 분포는 대체로 영상을 자연스럽게 유지하기 때문에 의료 영상이나 수중 영상에 흔히 사용됩니다. 지수 분포와 레일리 분포의 경우 Alpha 이름-값 인수를 지정하여 분포 형태를 추가로 조정할 수 있습니다.
dist =
"rayleigh"dist = "rayleigh"
J = adapthisteq(I,Distribution=dist); figure subplot(1,2,1) imshow(J) subplot(1,2,2) imhist(J,64)

Bin 개수를 지정하여 대비 조정하기
Bin 개수를 다르게 지정하여 대비를 조정합니다. Bin 개수가 적으면 adapthisteq 함수는 대비가 조정된 영상을 표시할 때 회색 레벨 수를 더 적게 사용합니다. Bin 개수를 늘리면 처리 속도가 느려지는 대신 영상의 동적 범위가 넓어집니다.
nbins =
20;
J = adapthisteq(I,NBins=nbins);
figure
subplot(1,2,1)
imshow(J)
subplot(1,2,2)
imhist(J,64)