rotate.cpp
上传用户:nsdled
上传日期:2022-08-01
资源大小:1419k
文件大小:1k
源码类别:

图片显示

开发平台:

Visual C++

  1. #include "cv.h" #include "highgui.h" #include "math.h"
  2. #include "stdio.h" int main( int argc, char** argv ) { IplImage* src; /* the first command line parameter must be image file name */ if( argc==2 && (src = cvLoadImage(argv[1], -1))!=0) { IplImage* dst = cvCloneImage( src ); int  delta = 1; int  angle = 330;                           // 0:  仅仅旋转         double factor;         cvNamedWindow( "原图像", 1 ); cvShowImage( "原图像", src ); float m[6];             // Matrix m looks like:             //             // [ m0  m1  m2 ] ===>  [ A11  A12   b1 ]             // [ m3  m4  m5 ]       [ A21  A22   b2 ]             //  CvMat M = cvMat( 2, 3, CV_32F, m ); int w = src->width; int h = src->height;
  3. //旋转     factor = 1;
  4. m[0] = (float)(factor*cos(-angle*2*CV_PI/180.));
  5. m[1] = (float)(factor*sin(-angle*2*CV_PI/180.));
  6. m[3] = -m[1];
  7. m[4] = m[0];
  8. // 将旋转中心移至图像中间
  9.             m[2] = w*0.5f;  
  10. m[5] = h*0.5f;               //  dst(x,y) = A * src(x,y) + b
  11. cvGetQuadrangleSubPix( src, dst, &M); //cvNamedWindow( "旋转后的图像", 1 ); //cvShowImage( "旋转后的图像", dst );
  12.         //if(!cvSaveImage("旋转后的图像",dst))
  13.     //printf("Could not save:%sn","旋转后的图像");
  14.             cvSaveImage(argv[2],dst);
  15. // cvWaitKey(0);
  16. cvReleaseImage(&dst);    // angle=(int)angle%360;
  17.      
  18.     
  19. } return 0; }