21xrx.com
2024-12-22 17:35:35 Sunday
登录
文章检索 我的文章 写文章
使用OpenCV进行图片旋转
2023-10-23 00:42:37 深夜i     --     --
OpenCV 图片 旋转

在现代数字化时代,图像处理已成为一项不可或缺的技术。其应用范围包括计算机视觉、机器学习、医学图像分析等诸多领域。而OpenCV作为一个开源的计算机视觉库,提供了丰富的功能,包括图像旋转。

图像旋转是一种常见的操作,可以将图像按照一定的角度进行旋转,从而获得不同的视角。在OpenCV中,图像旋转是通过一系列矩阵运算来实现的。下面将介绍如何使用OpenCV进行图像旋转。

首先,我们需要导入OpenCV库,并读取待旋转的图像。可以使用cv2模块的imread函数来实现。例如,我们要旋转名为"image.jpg"的图像,可以使用以下代码进行读取:


import cv2

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

接下来,我们需要指定旋转的角度。通常情况下,旋转是按顺时针方向进行的,正角度表示顺时针旋转,负角度表示逆时针旋转。可以使用cv2模块的getRotationMatrix2D函数来生成旋转矩阵。该函数需要提供旋转中心点坐标、旋转角度和缩放因子。例如,要将图像顺时针旋转90度,可以使用以下代码:


import cv2

import numpy as np

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

(h, w) = image.shape[:2]

center = (w / 2, h / 2)

angle = 90

scale = 1.0

M = cv2.getRotationMatrix2D(center, angle, scale)

得到旋转矩阵后,我们可以使用cv2模块的warpAffine函数将图像进行旋转。该函数需要提供待旋转图像、旋转矩阵和图像尺寸。例如,要将图像进行旋转,可以使用以下代码:


import cv2

import numpy as np

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

(h, w) = image.shape[:2]

center = (w / 2, h / 2)

angle = 90

scale = 1.0

M = cv2.getRotationMatrix2D(center, angle, scale)

rotated_image = cv2.warpAffine(image, M, (w, h))

最后,我们可以使用cv2模块的imshow和imwrite函数来显示和保存旋转后的图像。例如,要显示旋转后的图像,可以使用以下代码:


import cv2

import numpy as np

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

(h, w) = image.shape[:2]

center = (w / 2, h / 2)

angle = 90

scale = 1.0

M = cv2.getRotationMatrix2D(center, angle, scale)

rotated_image = cv2.warpAffine(image, M, (w, h))

cv2.imshow("Rotated Image", rotated_image)

cv2.waitKey(0)

使用OpenCV进行图像旋转可以方便快捷地实现对图像角度的调整。无论是进行计算机视觉研究还是应用开发,掌握图像旋转技术都是很有实用价值的。

  
  

评论区

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