더북(TheBook)

getPerspectiveTransform() 함수는 src에 저장된 네 점을 dst 좌표의 점으로 옮기는 투시 변환 행렬을 반환합니다. 점의 좌표를 담고 있는 srcdstPoint2f 자료형 네 개를 가지고 있는 배열을 사용해도 되고, 또는 vector<Point2f> 자료형을 사용해도 됩니다. getPerspectiveTransform() 함수가 반환하는 Mat 객체는 CV_64FC1 타입을 사용하는 3×3 크기의 투시 변환 행렬입니다.

3×3 투시 변환 행렬을 가지고 있을 때, 영상을 투시 변환한 결과 영상을 생성하려면 warpPerspective() 함수를 사용합니다. warpPerspective() 함수 원형은 다음과 같습니다.

void warpPerspective(InputArray src, OutputArray dst,
                     InputArray M, Size dsize,
                     int flags = INTER_LINEAR,
                     int borderMode = BORDER_CONSTANT,
                     const Scalar& borderValue = Scalar());

src

입력 영상

dst

결과 영상. src와 같은 타입. 크기는 dsize

M

3×3 투시 변환 행렬

dsize

결과 영상의 크기

flags

보간법 알고리즘. 만약 OR 연산자를 이용하여 WARP_INVERSE_MAP 플래그를 함께 지정하면 역방향으로 변환을 수행합니다.

borderMode

가장자리 픽셀 확장 방식. BorderTypes 열거형 상수 중 하나를 지정합니다. 만약 BORDER_TRANSPARENT를 지정하면 입력 영상의 픽셀 값이 복사되지 않는 영역은 dst 픽셀 값을 그대로 유지합니다.

borderValue

borderModeBORDER_CONSTANT일 때 사용할 상수 값. 기본값으로 검은색이 지정되어 있습니다.

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