opencv 利用仿射变换的方式进行图片旋转
时间: 2023-08-20 20:07:43 浏览: 118
在 OpenCV 中,可以使用仿射变换函数 `cv2.warpAffine()` 来实现图像的旋转。以下是一个示例代码,演示如何利用仿射变换对图像进行旋转:
```python
import cv2
import numpy as np
# 加载图像
image = cv2.imread('input.jpg')
# 定义旋转角度和图像尺寸
angle = 45 # 旋转角度
height, width = image.shape[:2] # 图像尺寸
# 计算旋转矩阵
center = (width // 2, height // 2) # 旋转中心
M = cv2.getRotationMatrix2D(center, angle, 1.0) # 获取旋转矩阵
# 进行仿射变换
rotated = cv2.warpAffine(image, M, (width, height))
# 显示原始图像和旋转后的图像
cv2.imshow('Original', image)
cv2.imshow('Rotated', rotated)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,首先加载输入图像。然后定义旋转角度和图像尺寸。接下来,使用 `cv2.getRotationMatrix2D()` 函数计算旋转矩阵 `M`,其中参数 `center` 表示旋转中心,`angle` 表示旋转角度,`1.0` 表示缩放因子。最后,利用 `cv2.warpAffine()` 函数对图像进行仿射变换,得到旋转后的图像 `rotated`。最后,通过 `cv2.imshow()` 函数显示原始图像和旋转后的图像。
注意,这里的旋转角度是以逆时针方向为正。如果需要顺时针旋转图像,可以将角度设为负值。
阅读全文