在Mat getRotationMatrix2D(Point2f center, double angle, double scale)
或CvMat* cv2DRotationMatrix(CvPoint2D32f center, double angle, double scale, CvMat* map_matrix)
的解释中说,其实是用到了下面的矩阵:
The function calculates the following matrix:
where
其实就是先通过一次平移变换转换原坐标系统到以参考点为原点的坐标系统,在新得到的坐标系统中通过旋转变换得到点的坐标,然后再经过一次恢复平移的变换来把当前新系统中的坐标转换到旧系统中的坐标,公式如下:
|1 0 tx| |α β 0 | |1 0 -tx|
|0 1 ty| *|-β α 0| * |0 1 -ty|
|0 0 1| |0 0 1| |0 0 1 |
这三个矩阵的乘积就是