더북(TheBook)

이 수식에서 α=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    }

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