找了好久都没找到,网上有些图像旋转后图像都变形了....谢谢大家了

解决方案 »

  1.   

    通过旋转矩阵啊
    http://www.cnblogs.com/HappyXie/archive/2011/03/02/1969434.html
      

  2.   

    这是一段实现图像旋转的程序
    你可以参考一下
    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);