图像镜像分为水平镜像、垂直镜像和对角镜像 3 种。其中,水平镜像是指将图像的左右部分以图像垂直中轴线为中心进行镜像对换。深度学习的训练过程中,常常使用图像水平镜像变换的图像增强方法以提高模型的泛化能力。
基本定义图像镜像分为水平镜像、垂直镜像和对角镜像 3 种:
(1)水平镜像是指将图像的左右部分以图像垂直中轴线为中心进行镜像对换;
(2)垂直镜像是将图像的上下两部分以图像水平中轴线为中心进行镜像对换;
(3)对角镜像是将图像以图像水平中轴线和垂直中轴线的交点为中心进行镜像对换,相当于将图像先后进行水平镜像和垂直镜像。1
图1为原Lena图像,经水平镜像变换后,为图2所示。
变换方法假设原图像的高度为 ,宽度为 ,经过水平镜像变换后,原图像中像素点 的像素变为新图像坐标 处的像素值。若用 表示原图像坐标, 表示经水平镜像变换后图像的坐标,那么两张图像的关系可表示为:1
逆变换为:
代码实现C++void Mirror(const Mat &srcImage, Mat &dstImage, int flag){dstImage.create(srcImage.size(), srcImage.type());int nRowNum = srcImage.rows;int nColNum = srcImage.cols;switch(flag){//水平镜像case 1:for(int i = 0; i