21xrx.com
2024-11-22 03:07:16 Friday
登录
文章检索 我的文章 写文章
使用OpenCV和Python实现图像旋转
2023-10-18 18:16:17 深夜i     --     --
OpenCV Python 图像旋转 实现 编程

在计算机视觉和图像处理中,图像旋转是一项常见的任务。使用OpenCV和Python,我们可以轻松地实现对图像的旋转操作。

首先,确保你已经安装了OpenCV和Python的适当版本。在安装完毕后,我们可以引入需要的库和模块,例如`cv2`和`numpy`。

首先,我们需要加载需要旋转的图像。这可以通过使用`cv2.imread()`函数来实现。例如,如果要加载名为`image.jpg`的图像,可以使用以下代码:


import cv2

import numpy as np

# 加载图像

image = cv2.imread("image.jpg")

接下来,我们可以定义旋转的角度。例如,如果要将图像逆时针旋转45度,则可以设置角度为45:


angle = 45

然后,我们需要确定旋转后的图像尺寸。为此,我们可以使用输入图像的尺寸以及旋转角度来计算输出图像的尺寸。例如,如果输入图像的尺寸为`(height, width)`,则旋转后的图像尺寸可以计算为:


height, width = image.shape[:2]

new_height = int(width * np.abs(np.sin(np.radians(angle))) + height * np.abs(np.cos(np.radians(angle))))

new_width = int(height * np.abs(np.sin(np.radians(angle))) + width * np.abs(np.cos(np.radians(angle))))

接下来,我们可以使用`cv2.getRotationMatrix2D()`函数来计算旋转矩阵。该函数需要三个参数:旋转中心,旋转角度和缩放因子。我们可以使用`cv2.warpAffine()`函数将旋转矩阵应用于图像,从而实现旋转操作。以下是完整的旋转代码:


import cv2

import numpy as np

# 加载图像

image = cv2.imread("image.jpg")

# 旋转角度

angle = 45

# 计算旋转后图像的尺寸

height, width = image.shape[:2]

new_height = int(width * np.abs(np.sin(np.radians(angle))) + height * np.abs(np.cos(np.radians(angle))))

new_width = int(height * np.abs(np.sin(np.radians(angle))) + width * np.abs(np.cos(np.radians(angle))))

# 计算旋转矩阵

rotation_matrix = cv2.getRotationMatrix2D((width / 2, height / 2), angle, 1)

# 应用旋转矩阵

rotated_image = cv2.warpAffine(image, rotation_matrix, (new_width, new_height))

# 显示原始图像和旋转后的图像

cv2.imshow("Original Image", image)

cv2.imshow("Rotated Image", rotated_image)

cv2.waitKey(0)

cv2.destroyAllWindows()

运行代码后,你可以看到原始图像和旋转后的图像显示在屏幕上。

总结起来,使用OpenCV和Python实现图像旋转是一项非常简单的任务。通过适当地导入库和模块,我们可以加载图像并计算旋转矩阵,然后应用于图像。这样,我们就可以实现图像旋转操作,从而在图像处理和计算机视觉应用中发挥重要作用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复