saturate_cast() 함수를 사용하여 영상의 밝기를 직접 조절하는 소스 코드를 코드 5-3에 나타냈습니다. 코드 5-3에 나타난 brightness3() 함수는 앞서 설명한 brightness2() 함수에서 포화 연산이 추가된 코드입니다.
코드 5-3 포화 연산을 고려한 영상의 밝기 증가 직접 구현 [ch05/brightness]
01 void brightness3() 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.rows, src.cols, src.type()); 11 12 for (int j = 0; j < src.rows; j++) { 13 for (int i = 0; i < src.cols; i++) { 14 dst.at<uchar>(j, i) = saturate_cast<uchar>(src.at<uchar>(j, i) + 100); 15 } 16 } 17 18 imshow("src", src); 19 imshow("dst", dst); 20 21 waitKey(); 22 destroyAllWindows(); 23 }
• 14행 밝기 조절된 픽셀 값에 saturate_cast() 함수를 이용하여 포화 연산을 수행한 후 결과 영상 픽셀 값으로 설정합니다.