Main Content

감마 보정하기

한 범위에서 다른 범위로 명암 값을 매핑할 때 선택적으로 감마 보정을 사용하여 비선형 매핑을 수행할 수 있습니다. 감마 보정 인자는 0과 무한대 사이의 어떤 값도 가능합니다.

  • 감마가 1보다 작으면 매핑은 더 높은(밝은) 출력 값에 치우치게 됩니다.

  • 감마가 1보다 크면 매핑은 더 낮은(어두운) 출력 값에 치우치게 됩니다.

  • 감마가 정확히 1이면 매핑은 선형입니다.

이 그림에서 이 관계를 보여줍니다. 세 변환 곡선은 감마가 1보다 작거나 같거나 클 때 값이 어떻게 매핑되는지를 보여줍니다. 각 그래프에서 x축은 입력 영상의 명암 값을 나타내고, y축은 출력 영상의 명암 값을 나타냅니다.

서로 다른 세 가지 감마 보정 설정을 보여주는 플롯

Intensity mapping curve is concave down (increasing) for gamma less than 1, a straight line with a positive slope for gamma equal to 1, and concave up (increasing) for gamma greater than 1.

대비 조정 시 감마 지정하기

이 예제에서는 imadjust 함수로 대비를 조정할 때 감마를 지정하는 방법을 보여줍니다. 기본적으로 imadjust는 감마 값 1을 사용합니다. 그러면 원래 영상과 출력 영상의 명암 값이 선형으로 매핑됩니다. 감마 값이 1보다 작으면 매핑에서 더 높은(밝은) 출력 값으로 치우치게 됩니다. 감마 값이 1보다 크면 더 낮은(어두운) 출력 값으로 치우치게 됩니다.

영상을 작업 공간으로 읽어 들입니다. 이 예제에서는 인덱스 영상을 읽어 들여 회색조 영상으로 변환합니다.

[X,map] = imread("forest.tif");
I = ind2gray(X,map);

1보다 작은 감마 값(0.5)을 지정하면서 대비를 조정합니다. 이 예제에서는 imadjust를 호출할 때 입력 및 출력 영상의 데이터 범위를 빈 행렬로 지정합니다. 빈 행렬을 지정하면 imadjust는 디폴트 범위인 [0,1]을 사용합니다. 이 예제에서는 두 범위 모두 비어 있습니다. 그러면 다른 데이터 조정 없이 감마 보정이 적용됩니다.

J = imadjust(I,[],[],0.5);

원본 영상을 대비가 조정된 영상과 함께 표시합니다.

imshowpair(I,J,"montage")

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

참고 항목

| |

관련 항목