在深度学习的数据集实现过程中,常常需要对图像数据进行增强操作,其中旋转和翻转是两个常见的操作,本文将简单介绍python对这两种图像处理方法对实现。
图像旋转主要是借助np.rot90()
函数实现,我们知道图像其实就是二维的矩阵,因此可以借助numpy库来处理,代码如下:
def rot_img(img, angle=0):
"""
To rotate input image
param:
- img: narray
- angle: int, (0, 90, 180, 270) 逆时针方向
return:
- tf_img : rotated image
"""
assert angle in [0, 90, 180, 270], 'Unsupported angle input, please input angle in [0, 90, 180, 270]'
tf_img = img.copy()
rots = int(angle / 90)
tf_img = np.rot90(tf_img, rots)
return tf_img
图像是一个二维矩阵,因此翻转只需要将矩阵进行水平或垂直翻转即可,代码如下:
def flip_img(img, flip=None):
"""
To flip input image
param:
- img: narray
- flip: 'v':vertical 'h':horizon
return:
- tf_img: flipped image
"""
assert flip in [None, 'h', 'v'], 'Unsupported flip input, please input flip in [h, v]'
tf_img = img
if flip == 'h':
tf_img = img[:, ::-1, :]
elif flip == 'v':
tf_img = img[::-1, ...]
return tf_img
感谢阅读,如果对您有帮助,希望点个赞!