- #include
- #include
-
- #pragma comment(lib, "cv.lib")
- #pragma comment(lib, "cxcore.lib")
- #pragma comment(lib, "highgui.lib")
-
- int main()
- {
- CvPoint2D32f srcTri[4], dstTri[4];
- CvMat* warp_mat = cvCreateMat (3, 3, CV_32FC1);
- IplImage* src = NULL;
- IplImage* dst = NULL;
-
- src = cvLoadImage ("test.png", 1);
- dst = cvCloneImage (src);
- dst->origin = src->origin;
- cvZero (dst);
-
- srcTri[0].x = 0;
- srcTri[0].y = 0;
- srcTri[1].x = src->width - 1;
- srcTri[1].y = 0;
- srcTri[2].x = 0;
- srcTri[2].y = src->height - 1;
- srcTri[3].x = src->width - 1;
- srcTri[3].y = src->height - 1;
-
- dstTri[0].x = src->width * 0.05;
- dstTri[0].y = src->height * 0.33;
- dstTri[1].x = src->width * 0.9;
- dstTri[1].y = src->height * 0.25;
- dstTri[2].x = src->width * 0.2;
- dstTri[2].y = src->height * 0.7;
- dstTri[3].x = src->width * 0.8;
- dstTri[3].y = src->height * 0.9;
-
- cvGetPerspectiveTransform (srcTri, dstTri, warp_mat);
- cvWarpPerspective (src, dst, warp_mat);
-
- cvNamedWindow("src", 1);
- cvShowImage("src", src);
- cvNamedWindow ("Affine_Transform", 1);
- cvShowImage ("Affine_Transform", dst);
-
- cvWaitKey (0);
-
- cvReleaseImage (&src);
- cvReleaseImage (&dst);
- cvReleaseMat (&warp_mat);
-
- return 0;
- }

评论记录:
回复评论: