반응형

Gamma Correction

  • Gamma Correction(감마 보정)은 이미지 밝기를 보정하는 방법 중 하나이다.
  • 감마 보정은 입력 값과 매핑된 출력 값 사이의 비선형 변환을 사용하여 밝기를 보정한다.
  • 비선형이기 때문에 모든 픽셀에 대해 동일하지 않다.

 

Gamma 값 공식
감마 값에 대한 그래프

γ(감마 값)이  γ < 1이면 원래 어두운 영역이 더 밝아지고 히스토그램이 오른쪽으로 이동한고, γ > 1이면 반대가 된다.

 

 

 

 

일반적인 밝기 보정과 차이점

 

일반적인 밝기 보정 공식은 다음과 같다.

밝기 보정 공식

 

각 픽셀에 a값을 곱하고, β값을 더하여 밝기를 조정한다. 

a = 1.3, β = 40

 일반적인 밝기 보정 공식으로 전반적인 밝기는 개선되었지만, 구름이 수치 포화로 인해 보이지 않게 되었다.

 

 

같은 그림에 감마 보정을 적용해보자.

γ=0.4

감마 보정은 매핑이 비선형적이고 이전과 달리 수치 포화도가 없기 때문에 포화 효과를 덜 추가하는 경향이 있다.

 

 

 

 

OpenCV를 이용한 감마 보정

 

    Mat lookUpTable(1, 256, CV_8U);
    uchar* p = lookUpTable.ptr();
    for( int i = 0; i < 256; ++i)
        p[i] = saturate_cast<uchar>(pow(i / 255.0, gamma_) * 255.0);
    Mat res = img.clone();
    LUT(img, lookUpTable, res);

 

 

 

 

 

 

 

 

 

끝.

반응형

'Computer Vision > OpenCV' 카테고리의 다른 글

[OpenCV] cv::VideoCapture RTSP open failed.  (0) 2022.06.14
[OpenCV] Optical Flow  (0) 2022.04.11
[OpenCV] Histogram Equalization (히스토그램 평활화)  (0) 2022.02.25
[OpenCV] Canny Edge  (0) 2021.04.05
woongs_93