怎样用opencv实现图像的任意角度的旋转,该如何处理

怎样用opencv实现图像的任意角度的旋转
找了好久都没找到,网上有些图像旋转后图像都变形了....谢谢大家了

------解决方案--------------------
通过旋转矩阵啊
http://www.cnblogs.com/HappyXie/archive/2011/03/02/1969434.html
------解决方案--------------------
这是一段实现图像旋转的程序
你可以参考一下
C/C++ code
    CvPoint2D32f    ptfCcenter;
    CvScalar        scValue;
    CvSize            sizeNew;
    float            fElement[6];
    int                nAngle        = 30;
    float            fAngleR        = nAngle*CV_PI/180;
    COLORREF        clrBack    = GetSysColor(COLOR_BTNFACE);

    sizeNew.width    = fabs((sin(fAngleR)*m_pImg->height))+fabs((cos(fAngleR)*m_pImg->width));
    sizeNew.height    = fabs((sin(fAngleR)*m_pImg->width))+fabs((cos(fAngleR)*m_pImg->height));
    IplImage*    pImgRotate    = cvCreateImage(sizeNew, m_pImg->depth, m_pImg->nChannels);
    CvMat        matRotate    = cvMat(2, 3, CV_32F, fElement);

    ptfCcenter.x    = (m_pImg->width-1)*0.5;
    ptfCcenter.y    = (m_pImg->height-1)*0.5;

    cv2DRotationMatrix(ptfCcenter, nAngle, 1, &matRotate);

    fElement[2] += (pImgRotate->width-m_pImg->width)/2;
    fElement[5] += (pImgRotate->height-m_pImg->height)/2;

    scValue.val[0]    = GetRValue(clrBack);
    scValue.val[1]    = GetRValue(clrBack);
    scValue.val[2]    = GetRValue(clrBack);
    scValue.val[3]    = 0;

    cvZero(pImgRotate);
    cvWarpAffine(m_pImg, pImgRotate, &matRotate, CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS, scValue);
    cvReleaseImage(&m_pImg);