opencv图像旋转(opencv图像旋转有一部分没有)
简介
图像旋转是在计算机视觉和图像处理中常用的操作。它涉及将图像围绕给定中心点旋转指定角度。OpenCV 提供了多种函数来方便地执行图像旋转。
RotatedRect 类
RotatedRect 类表示旋转矩形。它包含以下成员变量:
center:
矩形的中心点
size:
矩形的尺寸(宽度和高度)
angle:
矩形相对于水平轴的旋转角度(以度为单位)
旋转函数
OpenCV 提供了几个函数来执行图像旋转:
cv2.getRotationMatrix2D(center, angle, scale):
计算旋转矩阵,该矩阵将图像旋转给定的角度和缩放比例。
cv2.warpAffine(img, M, dsize):
使用仿射变换旋转图像,其中 M 是旋转矩阵,dsize 是输出图像的尺寸。
cv2.rotate:
围绕图像中心旋转图像指定角度(以度为单位)。
示例代码
以下示例代码展示了如何使用 OpenCV 旋转图像:```python import cv2# 读取图像 img = cv2.imread('image.jpg')# 计算旋转矩阵 M = cv2.getRotationMatrix2D((img.shape[1] / 2, img.shape[0] / 2), 45, 1.0)# 旋转图像 rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))# 显示旋转后的图像 cv2.imshow('Rotated Image', rotated_img) cv2.waitKey(0) cv2.destroyAllWindows() ```
适用于不同场景的旋转类型
OpenCV 提供了不同类型的旋转,适用于特定场景:
仿射变换 (cv2.warpAffine):
用于一般旋转和变形。
旋转 (cv2.rotate):
用于简单的图像旋转(围绕中心点)。
透视变换 (cv2.warpPerspective):
用于更复杂的透视校正。
结论
OpenCV 提供了全面的函数集来处理图像旋转。通过理解 RotatedRect 类和不同的旋转函数,可以轻松地旋转图像以满足各种计算机视觉和图像处理需求。