본문 바로가기
영상처리 프로그래밍/Visual C++ 영상 처리 프로그래밍

화질 향상 기법

by Glory_Choi 2022. 7. 14.
반응형
  • 영상 반전

 

영상의 반전이란 영상에서 밝은 부분은 어둡게, 반대로 어두운 영역은 밝게 변화시키는 기법이다. 반전기능은 Photoshop과 같은 상용 영상 편집 프로그램에도 있는 기능으로 영상 처리 기법 중에는 가장 간단한 기법 중 하나이다.

 

영상을 반전시킨다는 것은 영상 내의 모든 픽셀 값을 하나하나 반전시킨다는 것과 동일한 의미이다. 그레이스케일 영상에서 픽셀은 0~255 사이의 값을 가지고 0은 가장 어두은 검정색을 의미하고, 255는 가장 밝은 흰색을 의미한다. 픽셀 값을 반전하기 위해서는 0에 가까운 어두운 픽셀 값은 255에 가깝게 만들어주고, 255에 가까운 밝은 픽셀은 0에 가까운 픽셀 값으로 만들어주면 된다.

위 식에서 f(x,y)는 입력 영상에서 (x,y)좌표의 픽셀 값을 의미하고, g(x,y)는 반전 영상에 의해 생성되는 결과 영상의 픽셀 값을 의미한다. 위 수숙을 영상의 모든 픽셀에 대하여 수행하면 영상이 반전된다.

 

 

  • 밝기와 명암비 조절

 

  • 밝기 조절

그레이스케일 영상에서 밝기는 각 픽셀의 그레이스케일 값에 대응된다. , 그레이스케일 값이 커지면 밝기가 밝아지고 그레이스케일 값이 작아지면 밝기는 어두워진다. 그러므로 밝기 조절은 다음과 같은 수식으로 표현될 수 있다.

 

위 식에서 n은 조절할 그레이스케일 값의 정도를 의미한다. 만약 n이 양수이면 결과 영상의 밝기는 더욱 밝아지고, 음수이면 어두워진다.

 

  • 명암비 조절

 

명암비는 그레이스케일 값의 밝은 부분과 어두운 부분의 차이를 의미한다. 명암비는 영어로 contrast라고 부르며, 대비라고 번역되기도 한다. 영상이 전체적으로 밝거나 어둡기만 하면 그 영상의 명암비가 작다고 표현한다. 반대로 영상의 특정 부분은 밝고 다른 부분은 어두워서 두 부분의 차이가 잘 느껴지는 영상은 명암비가 높다고 이야기한다. 일반적으로 명암비가 높은 영상은 눈으로 보기에 더 선명하다고 느낀다.

그레이스케일의 평균값 128을 기준으로 픽셀 값을 조정하는 방식

위 수식에서 a는 명암비 조절의 정도를 결정하는 명암비 조절 상수이다. 만약 a=0이면

형태이므로 원본 영상이 출력된다.

a=1이면, 그레이스케일 값이 128인 영상은 그래도 128이 되고, 138인 픽셀은 148가되고, 158인 픽셀은 188로 증가하게 된다. , 128보다 멀리 떨어져 있는 그레이스케일의 픽셀의 값이 더욱 많이 변하는 것을 알 수 있다.

 

 

  • 감마 보정

 

그레이스케일 값이 128인 픽셀의 밝기는 그레이스케일 값이 255인 픽셀 밝기의 절반에 해당해야 옳을 것이다. 그러나 대부분의 모니터는 그레이스케일 128의 밝기를 255의 밝기의 절반으로 표현하지 않는다. 이는 모니터에서 밝기 또는 색상을 표현하는 방법이 비선형 방식이기 때문이다. 때문에 비선형적인 반응을 보정하는 감마 보정이 필요하다.

 

  • 지수 법칙 변환과 감마 보정

 

영상의 반전과 밝기, 명암비 조절은 입력 그레이스케일 값과 출력 그레이스케일 값의 관계 그래프가 직선 형태로 이루어진 변환이었다. 그러나 곡선 형태의 변환 함수도 존재할 수 있다. 곡선 형태의 변환 함수 중에서 널리 사용되는 함수는 지수 법칙 변환 함수를 사용하는 감마보정이다.

 

지수법칙 변환 수식

위 식에서 c와 감마는 양의 상수이다.

이러한 지수함수가 중요한 이유는 광학 센서, 모니터, 프린터 등의 장비들이 모두 이 지수 법칙의 특성을 가진다.

일반적인 모니터는 원래 신호보다 어두운 영상을 보여주고 있고 이러한 현상을 보정하기 위하여 감마 보정이 필요하다.

감마 보정이란 영상센서, 모니터, 프린터 등에서 발생하는 비선형적인 반응들을 보정하는 영상처리 알고리즘이다.

 

  • 히스토그램 분석

히스토그램이란

영상의 히스토그램이란 영상 내에서 각 그레이스케일 값에 해당하는 픽셀의 개수를 함수의 형태로 나타낸 것이다.

 

반응형

'영상처리 프로그래밍 > Visual C++ 영상 처리 프로그래밍' 카테고리의 다른 글

영상의 산술 연산  (0) 2022.07.18
[MFC] CClientDC  (0) 2022.07.04
BMP 파일(비트맵 파일)의 이해  (0) 2022.07.01
영상 처리 개요  (0) 2022.06.24