zoukankan      html  css  js  c++  java
  • An affine transformation

    #include <cv.h>
    #include <highgui.h>
    #define affine
    #ifdef affine
    int main()
    {
       CvPoint2D32f srcTri[3], dstTri[3];
       CvMat* rot_mat = cvCreateMat(2,3,CV_32FC1);
       CvMat* warp_mat = cvCreateMat(2,3,CV_32FC1);
       IplImage *src, *dst;
       if(((src=cvLoadImage(".//1.jpg",1)) != 0 ))
        {
       dst = cvCloneImage(src);
       dst->origin = src->origin;
       cvZero(dst);

       //COMPUTE WARP MATRIX
       srcTri[0].x = 0;          //src Top left
       srcTri[0].y = 0;
       srcTri[1].x = src->width - 1;    //src Top right
       srcTri[1].y = 0;
       srcTri[2].x = 0;          //src Bottom left
       srcTri[2].y = src->height - 1;
       //- - - - - - - - - - - - - - -//
       //dstTri[0].x = src->width*0.0;    //dst Top left
       //dstTri[0].y = src->height*0.33;
       //dstTri[1].x = src->width*0.85; //dst Top right
       //dstTri[1].y = src->height*0.25;
       //dstTri[2].x = src->width*0.15; //dst Bottom left
       //dstTri[2].y = src->height*0.7;
       dstTri[0].x = src->width*0.1;    //dst Top left
       dstTri[0].y = src->height*0.0;
       dstTri[1].x = src->width*1; //dst Top right
       dstTri[1].y = src->height*0.1;
       dstTri[2].x = src->width*0; //dst Bottom left
       dstTri[2].y = src->height*0.9;
       cvGetAffineTransform(srcTri,dstTri,warp_mat);
       cvWarpAffine(src,dst,warp_mat);

       cvNamedWindow("src");
       cvNamedWindow("dst");
       cvShowImage("src" , src);
       cvShowImage("dst" , dst);
       //cvWaitKey(0);

       //cvCopy(dst,src);

       //COMPUTE ROTATION MATRIX
       CvPoint2D32f center = cvPoint2D32f(src->width/2,
                                             src->height/2);
       double angle = 30;
       double scale = 1;
       cv2DRotationMatrix(center,angle,scale,rot_mat);
       cvWarpAffine(src,dst,rot_mat);

       //DO THE TRANSFORM:
       cvNamedWindow( "Affine_Transform", 1 );
          cvShowImage( "Affine_Transform", dst );
          cvWaitKey();
        }
       cvReleaseImage(&dst);
       cvReleaseMat(&rot_mat);
       cvReleaseMat(&warp_mat);
        return 0;
    }
    #endif

    angle = –8.0时 效果图如下:

    QQ截图20120727170347

    angle = 30时 效果图如下:

    QQ截图20120727170442

  • 相关阅读:
    ms sql server缓存清除与内存释放
    Linux学习23-Xftp上传文件显示乱码问题
    jmeter压测学习1-window环境准备与案例
    Linux学习22-文件上传与下载(rz,sz)
    httprunner学习16-locust性能测试
    httprunner学习15-运行用例命令行参数详解
    httprunner学习14-完整的项目结构设计
    httprunner学习13-环境变量.env
    httprunner学习12-hook 机制实现setup和teardown
    httprunner学习11-辅助函数debugtalk.py
  • 原文地址:https://www.cnblogs.com/freedesert/p/2612328.html
Copyright © 2011-2022 走看看