cvGetQuadrangleSubPix 圖像旋轉縮放

#include "cv.h"
#include "highgui.h"
#include "math.h"
int main( int argc, char** argv )
{
    IplImage* src;
    /* the first command line parameter must be image file name */
    if( argc==2 || (src = cvLoadImage("C:\\Users\\liang.guo\\Downloads\\opencvtest\\tesseract測試\\tesseract-build\\tesseract-ocr\\vs2010\\測試\\ceshi\\word\\a.jpg", -1))!=0)
    {
        IplImage* dst = cvCloneImage( src );
        int  delta = 1;
        int  angle = 0;
        int opt = 0;   // 1: 旋轉加縮放
                       // 0:  僅僅旋轉
        double factor;
        cvNamedWindow( "src", 1 );
        cvShowImage( "src", src );

        for(;;)
        {
            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 = src->width;
            int h = src->height;
            if(opt) // 旋轉加縮放
                factor = (cos(angle*CV_PI/180.) + 1.05)*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) = A * src(x,y) + b
            cvGetQuadrangleSubPix( src, dst, &M);
            for (int j=0;j<6;j++)
            {
            for(int jj=0;jj<6;jj++)
                {
                    CvScalar guo =cvGet2D(src,j,jj);
                    CvScalar guo2 =cvGet2D(dst,j,jj);
                }
            }
            
            cvNamedWindow( "dst", 1 );
            cvShowImage( "dst", dst );
            for( ;; )
            {
                
                if(cvWaitKey() == 27)
            break;
            }
                
            angle =(int) (angle + delta) % 360;
        } // for-loop
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章