더북(TheBook)

마스크 연산을 지원하는 Mat::copyTo() 함수는 mask 영상의 픽셀 값이 0이 아닌 위치에서만 *this 행렬 원소 값을 행렬 m으로 복사합니다. 만약 Mat::copyTo() 함수를 호출하는 *this 행렬과 인자로 전달된 m 행렬이 서로 크기 또는 타입이 같지 않을 경우, Mat::copyTo() 함수 내부에서 m.create() 함수를 호출하여 대상 영상 m을 새롭게 생성한 후 마스크 영상을 고려하여 픽셀 값을 복사합니다. 만약 *this 행렬과 m 행렬이 서로 크기와 타입이 같다면 m 행렬 원소 값을 그대로 유지한 상태에서 *this 행렬의 픽셀 값을 복사합니다.

이러한 Mat::copyTo() 함수의 동작 특성을 이용하여 두 장의 영상을 합성하는 예제 코드를 코드 4-17에 나타냈습니다. 코드 4-17의 mask_copyTo() 함수는 비행기 영상과 비행기 영역을 나타내는 마스크 영상, 그리고 들판 사진을 이용하여 들판 위에 비행기가 날아가고 있는 영상을 합성합니다. mask_copyTo() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch04/utils 프로젝트에서 확인할 수 있습니다.

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