더북(TheBook)

코드 5-5에서 주목해야 할 부분은 10~11행 코드입니다.

float s = 2.f;
Mat dst = s * src;

이 코드는 앞서 설명한 기본적인 명암비 조절 수식을 그대로 OpenCV 코드 형태로 작성한 것입니다. OpenCV는 C/C++ 실수형 자료형과 Mat 객체 사이의 곱셈 연산자 재정의도 제공하며, 그 결과 Mat 행렬의 모든 원소에 주어진 실수 값을 곱한 결과 행렬을 반환합니다. 이때 결과 행렬에 대해 포화 연산도 함께 수행합니다.

코드 5-5의 contrast1() 함수 실행 결과를 그림 5-9에 나타냈습니다. 그림 5-9의 dst 영상을 보면 전체적으로 픽셀 값이 포화되어 흰색으로 나타나는 영역이 너무 많으며, 이로 인해 사물의 윤곽 구분이 더 어려워졌습니다. 그러므로 사실상 픽셀 값에 일정 상수를 단순히 곱하여 명암비를 조절하는 방식은 실전에서는 잘 사용되지 않습니다. 다음 절에서는 기본적인 명암비 조절 방식을 개선하여 좀 더 효과적으로 명암비를 조절하는 방법에 대해 알아보겠습니다.

▲ 그림 5-9 기본적인 영상의 명암비 증가 예제 실행 결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.