zoukankan      html  css  js  c++  java
  • openCv 图像顺时针、逆时针旋转

    通过下面这个函数调用

    Rotate90(workImg,270); //顺时针旋转

    Rotate90(workImg,90); //逆时针旋转

    实现,其实用该函数旋转任意度数对正方形图都ok,只是长方形图旋转后会有拉伸部分,不好掌握新图的长宽。

    void Rotate90(IplImage *workImg,int angle)
    {
        int opt = 0;                            //  1: 加缩放   0: 仅旋转
        double factor;                          //  缩放因子
        IplImage *pImage;
        IplImage *pImgRotation = NULL;
    
        pImage = workImg;
        pImgRotation = cvCloneImage(workImg);
    
        angle=-angle;
    
        //  创建 M 矩阵
        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 = workImg->height;
        int h = workImg->width;
    
        if (opt) factor = (cos(angle*CV_PI/180.)+1.0)*2;
        else factor = 1;
    
        m[0] = (float)(factor*cos(-angle*CV_PI/180.));
        m[1] = (float)(factor*sin(-angle*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(pImgRotation);
        cvGetQuadrangleSubPix(pImage,pImgRotation,&M);
        //---------------------------------------------------------
    
        cvNamedWindow("Rotation Image");
        cvFlip(pImgRotation);
        cvShowImage("Rotation Image",pImgRotation);
    
        cvReleaseImage( &pImgRotation );
        cvWaitKey(0);
    
        cvDestroyWindow("Rotation Image");
    }

    from: http://blog.csdn.net/abcjennifer/article/details/7269968

  • 相关阅读:
    【linux系列】配置免密登陆
    【linux系列】centos安装vsftp
    【linux系列】cenos7安装jdk
    MySQL DATE_SUB()
    Java基本数据类型
    Gson使用中遇到的Date格式问题
    数组中存放对象之java中定义类数组存放类
    获取X天后的日期
    sql统计总和和各状态数
    HttpServletRequest获取URL?后面的内容
  • 原文地址:https://www.cnblogs.com/GarfieldEr007/p/5374089.html
Copyright © 2011-2022 走看看