이 수식에서 α=scale⋅cos(angle)이고, β=scale⋅sin(angle)을 의미합니다.
getRotationMatrix2D() 함수로 구한 2×3 어파인 변환 행렬을 이용하여 영상을 회전시키는 예제 코드를 코드 8-5에 나타냈습니다. 코드 8-5의 affine_rotation() 함수는 tekapo.bmp 호수 영상을 영상 중심을 기준으로 반시계 방향으로 20°만큼 회전시키고 그 결과를 화면에 출력합니다. affine_rotation() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch08/affine 프로젝트에서 확인할 수 있습니다.
코드 8-5 영상의 회전 변환 [ch08/affine]
01 void affine_rotation() 02 { 03 Mat src = imread("tekapo.bmp"); 04 05 if (src.empty()) { 06 cerr << "Image load failed!" << endl; 07 return; 08 } 09 10 Point2f cp(src.cols / 2.f, src.rows / 2.f); 11 Mat M = getRotationMatrix2D(cp, 20, 1); 12 13 Mat dst; 14 warpAffine(src, dst, M, Size()); 15 16 imshow("src", src); 17 imshow("dst", dst); 18 19 waitKey(); 20 destroyAllWindows(); 21 }