OpenCV는 어파인 변환 행렬을 구하는 함수와 어파인 변환 행렬을 이용하여 실제 영상을 어파인 변환하는 함수를 모두 제공합니다. 먼저 어파인 변환 행렬을 구하는 함수 이름은 getAffineTransform()입니다. getAffineTransform() 함수는 입력 영상에서 세 점의 좌표와 이 점들이 이동한 결과 영상의 좌표 세 개를 입력으로 받아 2×3 어파인 변환 행렬을 계산합니다. getAffineTransform() 함수 원형은 다음과 같습니다.
Mat getAffineTransform(const Point2f src[], const Point2f dst[]); Mat getAffineTransform(InputArray src, InputArray dst); |
|
• src |
입력 영상에서 세 점의 좌표 |
• dst |
결과 영상에서 세 점의 좌표 |
• 반환값 |
2×3 어파인 변환 행렬. CV_64FC1 |
getAffineTransform() 함수는 src에 저장된 세 점을 dst 좌표의 점으로 옮기는 어파인 변환 행렬을 반환합니다. 점의 좌표를 담고 있는 src와 dst에는 크기가 3인 Point2f 배열을 사용해도 되고, 또는 vector<Point2f> 자료형 변수를 사용해도 됩니다. getAffineTransform() 함수가 반환하는 Mat 객체는 CV_64FC1 타입을 사용하는 2×3 크기의 어파인 변환 행렬입니다.