1.概述
(1)Why(为什么要进行图像的几何变换)
- 校正图像形变:纠正由于拍摄角度或硬件原因导致的图像几何变形
- 图像增强:在深度学习的模型训练时,通过几何变换获得更多的训练集
- 图像配准和拼接:先进行几何变换矫正,然后实现图像的配准或拼接
(2)What(什么是图像的几何变换)
本质:对图像像素的位置进行改变的操作
(3)Which(有哪些几何变换)
- 位置变换:平移、旋转(填充旋转和截断旋转)、镜像等变换
- 形状变换:缩放、错切、透视等变换
说明:实现几何变换的关键在于将非齐次坐标转为齐次坐标,本质是将22的变换矩阵(二阶矩阵)拓展成33的变换矩阵(三阶矩阵)
2.位置变换
(1)平移变换
A.图像大小不变
可直接使用
/* 图像平移(截断)*/
int ImgTranslateTrunc(const cv::Mat& imSrc, cv::Mat& imDst, int ix, int iy)
{
cv::Mat M(2, 3, CV_32FC1);
M.at<float>(0, 0) = 1;
M.at<float>(0, 1) = 0;
M.at<float>(0, 2) = ix;
M.at<float>(1, 0) = 0;
M.at<float>(1, 1)<