zoukankan      html  css  js  c++  java
  • OPENCV 中的图像旋转与缩放

    2006年11月07日 11:49:00
     在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;
    }
  • 相关阅读:
    (转)ab(apachebench)测试与loadrunner
    hibernate学习总结
    Oracle 11G在用EXP 导入、导出时,若有空表对导入导出中遇到的问题的解决
    Nginx可以做什么
    Oracle的表空间、用户和表的区别和联系
    oracle11g 导出表报EXP-00011:table不存在。
    tomcat、nginx、apache、tengine都是什么,及其作用
    注解和依赖注入框架
    js中innerHTML与innerText的用法与区别
    Linux中 /boot 目录介绍
  • 原文地址:https://www.cnblogs.com/feisky/p/1586394.html
Copyright © 2011-2022 走看看