OpenCV getRotationMatrix2D 函数

cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale )
{
    CV_INSTRUMENT_REGION();

    angle *= CV_PI/180;
    double alpha = std::cos(angle)*scale;
    double beta = std::sin(angle)*scale;

    Mat M(2, 3, CV_64F);
    double* m = M.ptr<double>();

    m[0] = alpha;
    m[1] = beta;
    m[2] = (1-alpha)*center.x - beta*center.y;
    m[3] = -beta;
    m[4] = alpha;
    m[5] = beta*center.x + (1-alpha)*center.y;

    return M;
}

(x=x*cos heta+y*sin heta+(1-cos heta)*center_x-sin heta*center_y)
(y=-sin heta*x+y*cos heta+sin heta*center_x+(1-cos heta)*center_y)

原文地址:https://www.cnblogs.com/walnuttree/p/13475736.html