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 영상 픽셀을 노란색으로 설정합니다.