그렇다면 OpenCV에서 영상의 밝기를 조절하려면 소스 코드를 어떻게 작성해야 할까요? OpenCV 라이브러리는 매우 잘 설계되어 만들어졌기 때문에 훨씬 직관적으로 밝기를 조절할 수 있습니다. 코드 5-1의 brightness1() 함수는 lenna.bmp 영상의 밝기를 100만큼 증가시켜 화면에 출력합니다. brightness1() 함수가 정의된 소스 파일은 내려받은 예제 파일 중 ch05/brightness 프로젝트에서 확인할 수 있습니다.
코드 5-1 영상의 밝기를 100만큼 증가하기 [ch05/brightness]
01 void brightness1() 02 { 03 Mat src = imread("lenna.bmp", IMREAD_GRAYSCALE); 04 05 if (src.empty()) { 06 cerr << "Image load failed!" << endl; 07 return; 08 } 09 10 Mat dst = src + 100; 11 12 imshow("src", src); 13 imshow("dst", dst); 14 waitKey(); 15 16 destroyAllWindows(); 17 }
• 3행 lenna.bmp 레나 영상을 그레이스케일 형식으로 불러와 src에 저장합니다.
• 5~8행 lenna.bmp 파일 불러오기가 실패하면 에러 메시지를 출력하고 종료합니다.
• 10행 src 영상의 모든 픽셀 값을 100만큼 증가시킨 결과 영상을 dst에 저장합니다.
• 12~14행 src와 dst 영상을 각각 새 창에 출력하고 키 입력이 있을 때까지 기다립니다.
• 16행 영상 출력 창을 모두 닫습니다.