赞
踩
需要头文件
- #include "core/core.hpp"
- #include "highgui/highgui.hpp"
- #include "imgproc/imgproc.hpp"
- //
- //函数功能:图片透视变换
- //输入: Mat src原图像 ,int p1x/y p2x/y p3x/y p4x/y对应左上,右上、左下、右下四个点的x\y坐标 ,
- //输入: int width,int height分别指转换后的图像宽、高
- //输出: 透视变换后的图像
- //
-
- Mat transformmat(Mat src,int p1x,int p1y,int p2x,int p2y,int p3x,int p3y,int p4x, int p4y,int width,int height)
- {
- Mat result;
- Point2f srcTri[4], dstTri[4];
-
- dstTri[0].x = 0;
- dstTri[0].y = 0;
- dstTri[1].x = width;
- dstTri[1].y = 0;
- dstTri[2].x = 0;
- dstTri[2].y = height;
- dstTri[3].x = width;
- dstTri[3].y = height;
-
- srcTri[0].x = p1x;
- srcTri[0].y = p1y;
- srcTri[1].x = p2x;
- srcTri[1].y = p2y;
- srcTri[2].x = p3x;
- srcTri[2].y = p3y;
- srcTri[3].x = p4x;
- srcTri[3].y = p4y;
-
- Mat transform = Mat::zeros(3, 3, CV_32FC1); //透视变换矩阵
- transform = getPerspectiveTransform(srcTri, dstTri); //获取透视变换矩阵
- warpPerspective(src, result, transform, Size(height+1,width+1)); //透视变换
-
- return result;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。