OPENCV 中的图像旋转与缩放

  在OPENCV中实现图像旋转,可以采用图像的仿射变换形式,下面给出一个样例程序,说明如何实现图像的旋转与缩放。
#include  "cv.h"
#include  "highgui.h"
#include  "math.h"
int  main(  int  argc,  char**  argv  )
{
  IplImage*  src=0;
  IplImage*  dst  0;
     
  if(  argc==2  &&  (src  cvLoadImage(argv[1],  -1))!=0)
  {
    int    delta  1;
    int    angle  0;
                int  opt  0;      //  1:旋转加缩放
                                              //  0:    仅仅旋转
                double  factor;
                dst  cvCloneImage(  src  );
                cvNamedWindow(  "src",  );
    cvShowImage(  "src",  src  );
    for(;;)
    {
      float  m[6];
                        //  Matrix  looks  like:
                        //
                        //  m0    m1    m2  ===>    A11    A12      b1  ]
                        //  m3    m4    m5              A21    A22      b2  ]
                        //
      CvMat  cvMat(  2,  3,  CV_32F,  );
      int  src->width;
      int  src->height;
      if(opt)  //  旋转加缩放
                                factor  (cos(angle*CV_PI/180.)  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; 
                        //    dst(x,y)  src(x,y)  b
                        cvZero(dst);
      cvGetQuadrangleSubPix(  src,  dst,  &M);
      cvNamedWindow(  "dst",  );
      cvShowImage(  "dst",  dst  );
      if(  cvWaitKey(1)  ==  27  )
        break;
      angle  =(int)  (angle  delta)  360;
    //  for-loop
  }
  return  0;

}


本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2009/01/02/1586394.html,如需转载请自行联系原作者


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值