NumPy矩阵的旋转
在⽤Python的数字图像处理、CNN或者深度学习⾥,对图像的处理:形变(缩放)处理常将图像数据读取到NumPy的array数据⾥,然后对
图像数据进⾏形变处理。NumPy提供了很多的对array数组的操作:tile、rot90等。本章除了了解rot90的基本使⽤外,⾃⼰也想写点程序
实现旋转的功能。
13.1 rot90函数实现矩阵旋转
从NumPy的官⽅完整查到rot90函数语法格式如下:
rot90(m, k=1, axes=(0, 1)
m是要旋转的数组(矩阵),k是旋转的次数,默认旋转1次,那是顺时针还是逆时针呢?正数表⽰逆时针,⽽k为负数时则是对数组进⾏顺时
针⽅向的旋转。
import numpy as np mat = np.array([[1,3,5], [2,4,6], [7,8,9] ]) print mat, "# orignal" mat90 = np.rot90(mat, 1) print mat90, "# rorate 90 anti-clockwise" mat90 = np.rot90(mat, -1) print mat90, "# rorate 90 clockwise" mat180 = np.rot90(mat, 2) print mat180, "# rorate 180 anti-clockwise" mat270 = np.rot90(mat, 3) print mat270, "# rorate 270 anti-clockwise"
执⾏结果:
[[1 3 5]
[2 4 6]
[7 8 9]] # orignal
[[5 6 9]
[3 4 8]
[1 2 7]] # rorate 90 anti-clockwise
[[7 2 1]
[8 4 3]
[9 6 5]] # rorate 90 clockwise
[[9 8 7]
[6 4 2]
[5 3 1]] # rorate 180 anti-clockwise
[[7 2 1]
[8 4 3]
[9 6 5]] # rorate 270 anti-clockwise
可见逆时针旋转$270^{\ \circ}$等价于顺时针旋转$90^{\ \circ}$。
作者:资料库元旋123
链接:https://wenku.baidu.com/view/c3bda83e68d97f192279168884868762caaebb8b.html
来源:百度文库
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
--------------------------------------------------------
作者:资料库元旋123
链接:https://wenku.baidu.com/view/c3bda83e68d97f192279168884868762caaebb8b.html
来源:百度文库
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。