首页 理论教育 深度学习中的图像旋转、平移和翻转方法

深度学习中的图像旋转、平移和翻转方法

时间:2023-11-18 理论教育 版权反馈
【摘要】:对于图像的旋转、平移和翻转是图像处理的常见方法,也是深度学习里图像增强的常见方式,可以在真实图像不足的场景下增加训练数据量。实现平移的代码及效果如下:import cv2import numpy as npimg=cv2.imreadheight, width,_=img.shapematShift=np.float32img_new=cv2.warpAffinecv2. imshowcv2. waitKey图3-7平移效果图像翻转分为水平翻转和垂直翻转,采用的函数为cv2.flip(),示例如下:cv2. flip其中img代表原图像,flipMode代表翻转模式,有三种模式:0代表垂直方向翻转;1代表水平方向翻转;当设置为-1时表示水平、垂直方向同时翻转。

深度学习中的图像旋转、平移和翻转方法

对于图像的旋转、平移和翻转是图像处理的常见方法,也是深度学习图像增强的常见方式,可以在真实图像不足的场景下增加训练数据量。

import cv2

import numpy as np

img=cv2.imread('lena.jpg')

height, width,_=img.shape

matrix=cv2.getRotationMatrix2D((height/2,width/2),90,1)

img_new=cv2.warpAffine(img, matrix,(height, width))

Cv2. imshow("test",img_new)

上例中getRotationMatrix2D得到变换的矩阵,将这个矩阵作为仿射变换矩阵利用warpAffine来进行变换,第一个参数就是旋转中心,采用元组的形式,这里设置成图像中心,第二个参数90,代表旋转的角度为90度,第三个参数1,表示放缩的系数,1表示保持与原图大小相同(图3-6)。

图3-6 旋转变换后的图像

图像的平移同样可以利用warpAffine函数予以实现,但仿射变换矩阵的构造内容有所不同,可以通过NumPy定义了一个平移矩阵M,它将决定平移多少像素,格式如下:

matShift=np.float32([[1,0,25],[0,1,50]])

在平移矩阵第一行中设置的形式为[1,0,x],其中x表示图像将向左或向右移动的距离,如果x是正值,则表示向右移动,如果x是负值,则表示向左移动。在矩阵第二行设置的形式为[0,1,y],其中y表示图像将向上或向下移动的距离,如果y是正值,则表示向下移动,如果是负值的话,则表示向上移动(图3-7)。

实现平移的代码及效果如下:(www.xing528.com)

import cv2

import numpy as np

img=cv2.imread('lena.jpg')

height, width,_=img.shape

matShift=np.float32([[1,0,25],[0,1,50]])

img_new=cv2.warpAffine(img, matShift,(height, width))

cv2. imshow("shift",img_new)

cv2. waitKey(0)

图3-7 平移效果图像

翻转分为水平翻转和垂直翻转,采用的函数为cv2.flip(),示例如下:

cv2. flip(img, flipCode)

其中img代表原图像,flipMode代表翻转模式,有三种模式:0代表垂直方向翻转;1代表水平方向翻转;当设置为-1时表示水平、垂直方向同时翻转。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈