코드 5-1에서 10행 코드를 좀 더 자세히 살펴보겠습니다.
Mat dst = src + 100;
앞 코드에서 src와 dst 변수는 Mat 클래스 타입이고, 숫자 100은 일반적인 int 자료형입니다. 앞서 3.2.7절에서도 언급하였듯이 OpenCV에서는 덧셈, 뺄셈 연산자에 대하여 연산자 재정의가 되어 있어서 Mat 객체와 C/C++ 기본 자료형과의 덧셈 및 뺄셈 연산이 가능합니다. 그러므로 앞과 같은 코드를 만나면 OpenCV 라이브러리는 src 행렬의 모든 원소에 각각 100을 더하고, 포화 연산까지 수행한 결과를 dst 행렬에 저장합니다. 즉, src가 그레이스케일 영상이므로 덧셈 연산 결과가 255보다 클 경우 dst 영상의 픽셀 값을 255로 설정합니다.
코드 5-1의 brightness1() 함수 실행 결과를 그림 5-4에 나타냈습니다. 그림 5-4에서 src 창은 입력 레나 영상이고, dst 창은 밝기가 100만큼 증가된 결과 영상을 나타냅니다. 입력 영상보다 결과 영상이 전체적으로 밝아진 것을 확인할 수 있습니다.
▲ 그림 5-4 영상의 밝기를 100만큼 증가하기 예제 실행 결과