矩阵的翻转与旋转()(另附代码)

矩阵的翻转与旋转()(另附代码)

 

rot90--矩阵旋转

【功能简介】矩阵旋转90°或90°的倍数。

【语法格式】

1.B=rot90(A)

将矩阵A逆时针旋转90°以后返回B。

2.B=rot90(A,k)

将矩阵A逆时针旋转(90×k)°以后返回B,k取负数时表示顺时针旋转。

【实例3.46】对矩阵进行逆时针和顺时针旋转。

  1. >> a=[1,2,3;4,5,6;7,8,9]  
  2. a =  
  3.      1     2     3  
  4.      4     5     6  
  5.      7     8     9  
  6. >> b=rot90(a)           %逆时针旋转90°  
  7. b =  
  8.      3     6     9  
  9.      2     5     8  
  10.      1     4     7  
  11. >> c=rot90(a,-1)        %顺时针旋转90°  
  12. c =  
  13.      7     4     1  
  14.      8     5     2  
  15.      9     6     3  

【实例分析】利用这个函数可以实现矩阵90°角任意倍数的旋转。

 

 

 

fliplr--矩阵左右翻转

【功能简介】实现矩阵左右翻转。

【语法格式】

  1. B=fliplr(A) 

对矩阵A进行左右翻转。

【实例3.47】对矩阵magic(3)进行左右翻转。

  1. >> a=magic(3)  
  2. a =  
  3.      8     1     6  
  4.      3     5     7  
  5.      4     9     2  
  6. >> b=fliplr(a)    %左右翻转  
  7. b =  
  8.      6     1     8  
  9.      7     5     3  
  10.      2     9     4  

【实例分析】左右翻转的过程中,如果矩阵有奇数列,那么中间一列是没有变化的。

 

flipud--矩阵上下翻转

【功能简介】实现矩阵上下翻转。

【语法格式】

  1. B=flipud(A) 

对矩阵A进行上下翻转。

【实例3.48】对矩阵magic(3)进行上下翻转。

  1. >> a=magic(3)  
  2. a =  
  3.      8     1     6  
  4.      3     5     7  
  5.      4     9     2  
  6. >> b=fliplr(a)     %左右翻转  
  7. b =  
  8.      6     1     8  
  9.      7     5     3  
  10.      2     9     4  
  11. >> c=flipud(a)    %上下翻转  
  12. c =  
  13.      4     9     2  
  14.      3     5     7  
  15.      8     1     6  

【实例分析】与左右翻转类似,上下翻转的过程中,如果矩阵有奇数行,那么中间一行是没有变化的。

 

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)

你可能感兴趣的:(Python,计算机视觉,TensorFlow)