圖像鏡像分為水平鏡像、垂直鏡像和對角鏡像 3 種。其中,水平鏡像是指將圖像的左右部分以圖像垂直中軸線為中心進行鏡像對換。深度學習的訓練過程中,常常使用圖像水平鏡像變換的圖像增強方法以提高模型的泛化能力。
基本介紹
- 中文名:圖像水平鏡像變換
- 外文名:Image horizontal mirror transformation
- 基本釋義:以圖像垂直中軸線為中心鏡像對換
- 性質:尺寸不變
- 學科:數字圖像處理
- 套用:機器學習的數據增強
基本定義
變換方法
代碼實現
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 < nRowNum; i++){for(int j = 0; j < nColNum; j++){dstImage.at<Vec3b>(i, j) = srcImage.at<Vec3b>(nRowNum - i - 1, j);}}break;//垂直鏡像case 2:for(int i = 0; i < nRowNum; i++){for(int j = 0; j < nColNum; j++){dstImage.at<Vec3b>(i, j) = srcImage.at<Vec3b>(i, nColNum - j - 1);}}break;//對角鏡像case 3:for(int i = 0; i < nRowNum; i++){for(int j = 0; j < nColNum; j++){dstImage.at<Vec3b>(i, j) = srcImage.at<Vec3b>(nRowNum - i - 1, nColNum - j - 1);}}}}
Matlab
clc;clear all;close all;I=imread('lena.jpg');figure;imshow(I);%水平變換[m n]=size(I);I1(1:m,1:n)=I(m:-1:1,1:n);figure;imshow(I1);%%%垂直變換I2(1:m,1:n)=I(1:m,n:-1:1);figure;imshow(I2);%%%對角變換I3(1:m,1:n)=I(m:-1:1,1:n);figure;imshow(I3)