矩阵的翻转与旋转()(另附代码)
rot90--矩阵旋转
【功能简介】矩阵旋转90°或90°的倍数。
【语法格式】
1.B=rot90(A)
将矩阵A逆时针旋转90°以后返回B。
2.B=rot90(A,k)
将矩阵A逆时针旋转(90×k)°以后返回B,k取负数时表示顺时针旋转。
【实例3.46】对矩阵进行逆时针和顺时针旋转。
【实例分析】利用这个函数可以实现矩阵90°角任意倍数的旋转。
fliplr--矩阵左右翻转
【功能简介】实现矩阵左右翻转。
【语法格式】
对矩阵A进行左右翻转。
【实例3.47】对矩阵magic(3)进行左右翻转。
【实例分析】左右翻转的过程中,如果矩阵有奇数列,那么中间一列是没有变化的。
flipud--矩阵上下翻转
【功能简介】实现矩阵上下翻转。
【语法格式】
对矩阵A进行上下翻转。
【实例3.48】对矩阵magic(3)进行上下翻转。
【实例分析】与左右翻转类似,上下翻转的过程中,如果矩阵有奇数行,那么中间一行是没有变化的。
def data_augmentation(image, mode):
if mode == 0:
# original
return image
elif mode == 1:
# flip up and down
return np.flipud(image)
elif mode == 2:
# rotate counterwise 90 degree
return np.rot90(image)
elif mode == 3:
# rotate 90 degree and flip up and down
image = np.rot90(image)
return np.flipud(image)
elif mode == 4:
# rotate 180 degree
return np.rot90(image, k=2)
elif mode == 5:
# rotate 180 degree and flip
image = np.rot90(image, k=2)
return np.flipud(image)
elif mode == 6:
# rotate 270 degree
return np.rot90(image, k=3)
elif mode == 7:
# rotate 270 degree and flip
image = np.rot90(image, k=3)
return np.flipud(image)