더북(TheBook)

Mat::setTo() 함수에서 마스크 영상을 사용하는 예제 코드를 코드 4-16에 나타냈습니다. 코드 4-16의 mask_setTo() 함수는 lenna.bmp 레나 영상의 일부 영역에 대해서만 픽셀 값을 노란색으로 설정합니다. 이때 노란색으로 설정할 영역 정보는 mask_smile.bmp 파일이 제공합니다. mask_setTo() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch04/utils 프로젝트에서 확인할 수 있습니다.

코드 4-16 마스크 영상을 이용한 픽셀 값 설정 예제 [ch04/utils]

01    void mask_setTo()
02    {
03        Mat src = imread("lenna.bmp", IMREAD_COLOR);
04        Mat mask = imread("mask_smile.bmp", IMREAD_GRAYSCALE);
05     
06        if (src.empty() || mask.empty()) {
07            cerr << "Image load failed!" << endl;
08            return;
09        }
10     
11        src.setTo(Scalar(0, 255, 255), mask);
12     
13        imshow("src", src);
14        imshow("mask", mask);
15     
16        waitKey(0);
17        destroyAllWindows();
18    }

 

3행 레나 영상을 src 변수에 저장합니다.

4행 마스크 영상을 mask 변수에 저장합니다.

11행 mask 영상에서 픽셀 값이 0이 아닌 위치에서만 src 영상 픽셀을 노란색으로 설정합니다.