📜  使用 ndimage.rotate Scipy 旋转图片(1)

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

使用 ndimage.rotate Scipy 旋转图片

在图像处理中,经常会需要对图像进行旋转操作。Scipy 库提供了一个方便的工具函数 ndimage.rotate() 来实现图像的旋转操作,并且旋转过程中可以保持图像的尺寸不变。本文将介绍如何使用 ndimage.rotate() 来旋转图像。

安装 Scipy

首先,我们需要安装 Scipy 库。可以使用 pip 命令来安装:

pip install scipy

安装完成后,我们就可以开始使用 ndimage.rotate() 函数了。

使用 ndimage.rotate() 进行旋转

下面是使用 ndimage.rotate() 函数实现图像旋转的示例代码:

import numpy as np
import scipy.ndimage as ndimage
import matplotlib.pyplot as plt

# 读取图像
img = plt.imread('lena.png')

# 旋转 45 度
rot_img = ndimage.rotate(img, 45, reshape=False)

# 显示原图和旋转后的图像
plt.subplot(121)
plt.imshow(img)
plt.title('Original Image')
plt.axis('off')

plt.subplot(122)
plt.imshow(rot_img)
plt.title('Rotated Image')
plt.axis('off')

plt.show()

输出结果如下所示:

原图和旋转后的图像

在上面的示例中,首先使用 plt.imread() 函数读取图像。然后使用 ndimage.rotate() 函数将原图像旋转 45 度,生成旋转后的图像。最后使用 matplotlib.pyplot 库的 imshow() 函数来显示原图和旋转后的图像。

参数说明

ndimage.rotate() 函数接受以下参数:

  • input:要旋转的图像数组。
  • angle:旋转角度,以度为单位。
  • axesndarray 格式的元组,指定哪些轴来旋转。例如,对一个 3D 数组,可以使用 (1, 2) 来在垂直和水平轴上旋转图像。
  • reshape:是否调整图像尺寸以适应旋转后的图像。默认为 True,即会调整图像大小。
  • output:输出图像数组。如果指定,则输出结果将写入该数组。
总结

本文介绍了如何使用 Scipy 库的 ndimage.rotate() 函数来旋转图像,并给出了示例代码。使用 ndimage.rotate() 函数可以方便地实现图像旋转操作,而且旋转过程中可以保持图像的尺寸不变。