21xrx.com
2025-04-03 22:41:10 Thursday
文章检索 我的文章 写文章
OpenCV图像旋转函数介绍及使用方法
2023-11-10 22:59:28 深夜i     24     0
OpenCV 图像旋转 函数介绍 使用方法 旋转操作

OpenCV是一个开源的计算机视觉库,提供了许多图像处理和计算机视觉技术的实现。其中一个常用的功能是图像旋转。在本文中,我们将介绍OpenCV中的图像旋转函数以及如何使用它。

在OpenCV中,图像旋转使用cv2.rotate函数实现。该函数有三个参数:输入图像、旋转类型和旋转角度。旋转类型可以是cv2.ROTATE_90_CLOCKWISE(顺时针旋转90度)、cv2.ROTATE_90_COUNTERCLOCKWISE(逆时针旋转90度)或cv2.ROTATE_180(旋转180度)。旋转角度可以是正值(顺时针旋转)或负值(逆时针旋转)。

下面是一个使用cv2.rotate函数实现图像旋转的示例代码:

import cv2
# 读取图像
image = cv2.imread("input.jpg")
# 逆时针旋转90度
rotated_image = cv2.rotate(image, cv2.ROTATE_90_COUNTERCLOCKWISE)
# 显示旋转后的图像
cv2.imshow("Rotated Image", rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的示例中,我们首先使用cv2.imread函数读取了一个名为"input.jpg"的图像。然后,我们使用cv2.rotate函数将图像逆时针旋转90度,并将结果保存在变量rotated_image中。最后,我们使用cv2.imshow函数显示旋转后的图像,并使用cv2.waitKey和cv2.destroyAllWindows函数等待用户按下任意键关闭窗口。

除了cv2.rotate函数,OpenCV还提供了其他图像旋转的方法。其中之一是使用cv2.getRotationMatrix2D函数生成旋转矩阵,然后使用cv2.warpAffine函数将旋转矩阵应用于图像。这种方法可以更灵活地控制旋转角度、旋转中心和输出图像的大小。

以下是使用cv2.getRotationMatrix2D和cv2.warpAffine函数实现图像旋转的示例代码:

import cv2
import numpy as np
# 读取图像
image = cv2.imread("input.jpg")
# 获取旋转矩阵
angle = 45 # 顺时针旋转45度
center = (image.shape[1] / 2, image.shape[0] / 2# 图像中心点
scale = 1.0 # 缩放比例
rotation_matrix = cv2.getRotationMatrix2D(center, angle, scale)
# 应用旋转矩阵
rotated_image = cv2.warpAffine(image, rotation_matrix, (image.shape[1], image.shape[0]))
# 显示旋转后的图像
cv2.imshow("Rotated Image", rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的示例中,我们首先使用cv2.getRotationMatrix2D函数获取旋转矩阵。旋转角度为45度,旋转中心为图像的中心点,缩放比例为1.0。然后,我们使用cv2.warpAffine函数将旋转矩阵应用于图像,并将结果保存在变量rotated_image中。最后,我们使用cv2.imshow函数显示旋转后的图像,并使用cv2.waitKey和cv2.destroyAllWindows函数等待用户按下任意键关闭窗口。

总结起来,OpenCV提供了多种方法实现图像旋转,如cv2.rotate函数和cv2.getRotationMatrix2D函数配合cv2.warpAffine函数。使用这些函数,我们可以很方便地对图像进行旋转操作,并实现各种想要的效果。

  
  

评论区

请求出错了