您的位置:首页 > 其它

图像的旋转与缩放

2013-03-05 15:45 155 查看
(一)

简单的模仿了下,运行后的效果是旋转的图片

#include <cv.h>

#include <highgui.h>

#include <math.h>

int main()

{

 IplImage *p = 0,*p1 = 0;

 if(( p = cvLoadImage("lena.jpg"))!=0)

 {

  int delta = 1;

  int angle = 0;

  int opt = 0;//1:旋转加缩放 0:旋转

  double factor;

  p1 = cvCloneImage(p);

  cvNamedWindow("原始",1);

  cvShowImage("原始",p);

  while (1)

  {

   float m[6];

   CvMat M  = cvMat(2,3,CV_32F,m);

   int w = p->width;

   int h = p->height;

   if(opt)    选择旋转缩放的相关事情

    factor = (cos (angle*CV_PI/180.0)+1.0)*2;

   else

    factor = 1;

   计算变换矩阵

   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;

   cvZero(p1);清空p1

   cvGetQuadrangleSubPix(p,p1,&M);http://xiangge2009.blog.sohu.com/147112222.html      
http://blog.csdn.net/xiaowei_cqu/article/details/7616044

   cvNamedWindow("新图",1);

   cvShowImage("新图",p1);

   if(cvWaitKey(1) == 27) break;

   angle = (int) (angle + delta) % 360;

  }
 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: