IplImage* RotationImg(IplImage* pImg, float angle)
{
IplImage* dst = cvCloneImage(pImg);
float m[6];
CvMat M = cvMat (2, 3, CV_32F, m);
int w = pImg->width;
int h = pImg->height;
double factor = 1; //(cos (angle * CV_PI / 180.) + 1.0) * 2; // factor 缩放因子
m[0] = (float) (factor * cos (-angle * 2 * CV_PI / 180.));
m[1] = (float) (factor * sin (-angle * 2 * CV_PI / 180.));
m[3] = -m[1];
m[4] = m[0];
// 将旋转中心移至图像中间
m[2] = w * 0.5f;
m[5] = h * 0.5f;
// dst(x,y) = A * src(x,y) + b
cvZero (dst);
cvGetQuadrangleSubPix (pImg, dst, &M);
return dst;
}