21xrx.com
2024-05-20 11:10:26 Monday
登录
文章检索 我的文章 写文章
OpenCV图像旋转函数介绍及使用方法
2023-11-10 22:59:28 深夜i     --     --
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函数。使用这些函数,我们可以很方便地对图像进行旋转操作,并实现各种想要的效果。

  
  

评论区

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