opencv 图像旋转
时间: 2023-09-17 14:15:07 浏览: 88
使用 OpenCV 进行图像旋转可以使用函数 `cv2.rotate()`。该函数需要三个参数:原始图像,旋转类型和旋转角度。旋转类型可以是 `cv2.ROTATE_90_CLOCKWISE`、`cv2.ROTATE_90_COUNTERCLOCKWISE` 或 `cv2.ROTATE_180` 中的一个。
下面是一个简单的例子,演示了如何将图像顺时针旋转 90 度:
``` python
import cv2
img = cv2.imread('image.jpg')
# 获取图像高度和宽度
(h, w) = img.shape[:2]
# 计算旋转中心点
center = (w // 2, h // 2)
# 获取旋转矩阵
M = cv2.getRotationMatrix2D(center, 90, 1.0)
# 执行旋转
rotated = cv2.warpAffine(img, M, (w, h))
# 显示旋转后的图像
cv2.imshow("Rotated Image", rotated)
cv2.waitKey(0)
```
在上面的代码中,我们首先读入一个图像,然后计算旋转中心点,获取旋转矩阵,然后执行旋转操作。最后,我们显示旋转后的图像。
请注意,`cv2.getRotationMatrix2D()` 函数需要两个必需参数:旋转中心和旋转角度。第三个参数是缩放因子,我们在这里将其设置为 1.0,表示不进行缩放操作。
相关问题
opencv 图像旋转
在使用OpenCV进行图像旋转时,你可以使用cv2.getRotationMatrix2D函数来获取旋转矩阵,该函数需要传入旋转中心点的坐标、旋转角度和缩放比例。然后你可以使用cv2.warpAffine函数将旋转矩阵应用于图像,实现旋转。
以下是一个示例代码来演示如何使用OpenCV进行图像旋转:
```
import cv2
# 读取图像
src = cv2.imread('./resource/image_A.png')
# 获取图像的行数、列数和通道数
rows, cols, channel = src.shape
# 绕图像的中心点旋转30度,逆时针旋转,并缩小到0.5
M = cv2.getRotationMatrix2D((cols/2, rows/2), angle=30, scale=0.5)
rotated_img = cv2.warpAffine(src, M, (cols, rows))
# 显示旋转后的图像
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
opencv 图片旋转
OpenCV是一个强大的计算机视觉库,它支持各种图像处理操作,包括图片旋转。在OpenCV中,你可以通过`cv2.getRotationMatrix2D()`函数计算出旋转矩阵,然后用`cv2.warpAffine()`函数应用这个矩阵来旋转图片。
以下是一个简单的步骤概述:
1. **计算旋转矩阵**:
```python
import cv2
import numpy as np
center = (image.shape[1] // 2, image.shape[0] // 2) # 图像中心点
angle = degrees_of_rotation # 要旋转的角度,单位度
scale = 1.0 # 缩放比例,保持原始尺寸
rot_matrix = cv2.getRotationMatrix2D(center, angle, scale)
```
2. **应用旋转矩阵**:
```python
rotated_image = cv2.warpAffine(image, rot_matrix, (image.shape[1], image.shape[0]), flags=cv2.INTER_LINEAR)
```
`INTER_LINEAR`是一种插值方法,用于平滑地转换像素,避免锯齿边缘。
3. **保存旋转后的图片**:
```python
cv2.imwrite("rotated_image.jpg", rotated_image)
```
阅读全文