본문 바로가기

Computer Vision/2D

영상의 톤 커브(tone curve)와 히스토그램 평탄화(histogram equalization)

Tone Curve

입력 영상의 각각의 화소 값에 대해서 출력 화소 값이 어떻게 대응할지를 정의하는 함수를 gradation transformation function이라고 하는데 이 함수를 그래프로 표현한 것을 톤 커브(tone curve)라고 합니다.
톤 커브를 활용하면 영상의 contrast를 높이거나 낮추거나 여러가지 상황에 맞게 영상의 밝기를 조절할 수 있습니다.

아래의 그림은 tone curve를 사용한 예시입니다.

두번째 그림은 화소 값이 중앙에 몰려 contrast가 낮은 영상에 S자 톤 커브를 사용하여 contrast를 높인 예시입니다.

Histogram equalization

영상의 contrast를 높이기 위해서 위처럼 톤 커브를 사용할 수도 있지만, 변환을 하기에 앞서 어느 쪽에 화소의 분포가 집중되어 있는지 영상의 히스토그램을 사전에 조사할 필요가 있습니다. 이를 자동화하는 방법으로는 히스토그램 평탄화(histogram equalization)가 있습니다.

히스토그램 평탄화를 식으로 나타내면 아래와 같습니다.
$$ g(x,y)=CDF(f(x,y))*I_{max} $$

$ f(x, y) $ : 입력 화소
$ g(x, y) $: 출력 화소
$ CDF() $ : 누적 분포 함수
$ I_{max} $ : 영상의 최대 화소 값

히스토그램 평탄화는 각 화소 값을 해당 영상의 화소 값에 대한 누적분포함수에 영상의 최대 화소 값을 곱하여 수행할 수 있습니다.
여기에서 자세한 계산 과정을 확인할 수 있습니다.

히스토그램 평탄화를 수행한 예시입니다.
0의 가까운 값에 화소 분포가 집중되어 있던 영상의 contrast를 높임으로써 어두워서 잘 보이지 않았던 곳이 선명하게 잘 표현되는 것을 확인할 수 있습니다.
이처럼 영상이 너무 어둡거나 밝아서 흐릿해보이는 부분을 히스토그램 평탄화를 사용하여 영상의 사전조사 없이 선명하게 표현할 수 있습니다.

728x90