一种比scipy.ndimage.rotate更快的图像旋转方法是使用OpenCV库中的cv2.warpAffine函数。以下是一个示例代码:
import cv2
import numpy as np
def rotate_image(image, angle):
# 获取图像的中心点坐标
height, width = image.shape[:2]
center = (width / 2, height / 2)
# 定义旋转矩阵
rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
# 使用warpAffine函数进行旋转
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))
return rotated_image
# 读取图像
image = cv2.imread('image.jpg')
# 旋转图像
rotated_image = rotate_image(image, 45)
# 显示旋转后的图像
cv2.imshow('Rotated Image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
上述代码中,首先定义了一个rotate_image
函数,该函数接受一个图像和一个旋转角度作为输入。然后,通过调用cv2.getRotationMatrix2D函数获取旋转矩阵,然后使用cv2.warpAffine函数进行图像旋转。最后,通过cv2.imshow函数显示旋转后的图像。
请注意,使用OpenCV的cv2.warpAffine函数进行图像旋转可能会比scipy.ndimage.rotate更快,因为OpenCV是一个专门用于计算机视觉任务的库,具有更高的优化和效率。