📜  Python中的numpy.rot90(1)

📅  最后修改于: 2023-12-03 15:19:27.442000             🧑  作者: Mango

Python中的numpy.rot90

介绍

numpy.rot90NumPy 库中的一个函数,用于将数组旋转90度。

函数定义如下:

numpy.rot90(m, k=1, axes=(0, 1))

参数:

  • m:要旋转的数组。
  • k:指定旋转次数,数值可以为正、负整数。默认值为1,表示逆时针旋转90度。
  • axes:指定要旋转的维度,以tuple形式表示。默认值是 (0,1),表示旋转前两个维度。

函数返回:旋转后的数组。

示例
import numpy as np

m = np.array([[1, 2], [3, 4]])
print("原数组:\n", m)

m_rot = np.rot90(m)
print("旋转后的数组:\n", m_rot)

m_rot = np.rot90(m, k=2)
print("旋转2次后的数组:\n", m_rot)

m_rot = np.rot90(m, k=-1)
print("逆时针旋转90度后的数组:\n", m_rot)

n = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
print("原数组:\n", n)

n_rot = np.rot90(n, axes=(1,2))
print("在第二和第三维度上旋转后的数组:\n", n_rot)

输出:

原数组:
 [[1 2]
 [3 4]]
旋转后的数组:
 [[2 4]
 [1 3]]
旋转2次后的数组:
 [[4 3]
 [2 1]]
逆时针旋转90度后的数组:
 [[2 1]
 [4 3]]
原数组:
 [[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
在第二和第三维度上旋转后的数组:
 [[[2 4]
  [1 3]]

 [[6 8]
  [5 7]]]
应用

numpy.rot90 函数常用于对图像做旋转操作。我们可以通过这个函数将图片逆时针旋转90度、180度、270度等。下面是一个简单的示例,用于将一张图片逆时针旋转90度。

import numpy as np
from PIL import Image

img = Image.open('/path/to/image.jpg')

# 将图片转为 NumPy 数组
arr = np.array(img)

# 对数组旋转90度
arr_rot = np.rot90(arr, k=-1)

# 将数组转为图像并保存
img_rot = Image.fromarray(arr_rot)
img_rot.save('/path/to/rotated_image.jpg')