warpPerspective() 함수는 투시 변환 행렬 M을 이용하여 src 영상으로부터 dst 영상을 생성합니다. 이때 전달되는 투시 변환 행렬 M은 CV_32FC1 또는 CV_64FC1 타입이어야 하고, 크기는 3×3이어야 합니다. 투시 변환 결과 영상의 크기 dsize는 사용자가 적절하게 지정해야 하며, dsize 위치에 Size()를 지정하면 입력 영상과 같은 크기의 결과 영상을 생성합니다. warpPerspective() 함수는 일곱 개의 인자를 가지고 있지만 뒤쪽 세 개 인자는 기본값을 가지고 있으므로 src, dst, M, dsize 네 개의 인자만 지정하여 사용할 수 있습니다.
네 점의 이동 관계로부터 투시 변환 행렬을 구하고, 이를 이용하여 실제 영상을 투시 변환하는 예제 코드를 코드 8-7에 나타냈습니다. 코드 8-7에 나타난 perspective 예제 프로그램은 card.bmp 트럼프 카드 영상에서 사용자가 마우스로 카드 모서리 좌표를 선택하면 해당 카드를 반듯한 직사각형 형태로 투시 변환하여 화면에 출력합니다. 코드 8-7에 나타난 소스 코드 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch08/perspective 프로젝트에서 확인할 수 있습니다.