더북(TheBook)

영상을 반시계 방향으로 θ만큼 회전하는 어파인 변환 행렬 M은 다음과 같이 정의됩니다.

그러므로 cos() 함수와 sin() 함수를 이용하여 앞과 같은 행렬을 생성하고, warpAffine() 함수를 사용하면 영상을 회전시킬 수 있습니다. 다만 영상을 회전하는 경우가 실제로 많이 발생하기 때문에 OpenCV는 영상의 회전을 위한 어파인 변환 행렬을 생성하는 getRotationMatrix2D() 함수를 제공합니다. 이 함수를 이용하면 영상을 원점이 아닌 특정 좌표를 기준으로 회전시키거나 필요한 경우 크기 변환까지 함께 수행하는 어파인 변환 행렬을 쉽게 만들 수 있습니다. getRotationMatrix2D() 함수 원형은 다음과 같습니다.

Mat getRotationMatrix2D(Point2f center, double angle, double scale);

center

회전 중심 좌표

angle

회전 각도. 양수는 반시계 방향, 음수는 시계 방향을 의미합니다.

scale

회전 후 추가적으로 확대 또는 축소할 비율. 크기 변환은 수행하지 않으려면 1을 지정합니다.

반환값

2×3 어파인 변환 행렬(CV_64F)

 

getRotationMatrix2D() 함수는 영상을 center 점을 기준으로 반시계 방향으로 angle 각도만큼 회전한 후, scale 크기만큼 확대 또는 축소하는 2×3 어파인 변환 행렬을 반환합니다. 만약 영상을 시계 방향으로 회전하는 어파인 변환 행렬을 구하고 싶다면 angle 인자에 음수를 지정합니다. getRotationMatrix2D() 함수가 반환하는 어파인 변환 행렬은 다음과 같이 계산됩니다.

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