这里写自定义目录标题
图像的仿射变换、透视变换、旋转
仿射变换
仿射变换:一种二维坐标到二维坐标的线性变换,它保持二维图像的平直性与平行性,即变换后直线依然是直线,平行的线依然平行。
opencv中实现仿射变换,需要获取仿射变换矩阵getAffineTransform(),在使用矩阵对图像进行仿射变换wrapAffine()。
获取仿射变换矩阵:
src[] : 源图像中的四边形顶点坐标,三个点
dst[] : 目标图像与原图对应的顶点坐标
仿射变换只需要三个点,三点即可确定一个平行四边形。返回值是[2×3]的矩阵
src :源图像
dts : 目标图像
M : 仿射变换矩阵
dsize : 目标图像的大小
flags :填充方式,默认线性
borderMode:边框填充方式
borderValue :边界填充值,默认0,黑色
测试代码:
//仿射变换
Mat m3 = imread(path4, 1);
//只需三个点
vector<Point2f> srcPointA;
vector<Point2f> dstPointA;
srcPointA.push_back(Point2f(0,0));
srcPointA.push_back(Point2f(0,m3.rows));
srcPointA.push_back(Point2f(m3.cols ,0));
dstPointA.push_back(Point2f(m3.cols*0.1 , m3.rows*0.1));
dstPoint