더북(TheBook)

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() 함수를 이용하여 포화 연산을 수행한 후 결과 영상 픽셀 값으로 설정합니다.

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