python opencv图像旋转90度
时间: 2023-05-31 17:20:02 浏览: 527
Python+OpenCV 实现图片无损旋转90°且无黑边
### 回答1:
使用OpenCV在Python中旋转图像90度可以使用以下代码:
```
import cv2
import numpy as np
img = cv2.imread("input.jpg")
rows,cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2,rows/2),90,1)
dst = cv2.warpAffine(img,M,(cols,rows))
cv2.imshow("rotated", dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
### 回答2:
要将图像旋转90度,我们可以使用Python中的OpenCV库。旋转图像的方法是使用cv2.roate()函数。使用此函数,需要设置三个参数:
- src: 输入图像;
- angle: 旋转的角度;
- scale: 缩放因子。
例如,以下代码演示了如何将图像逆时针旋转90度。
```python
import cv2
# 读入图像
img = cv2.imread('image.jpg')
# 获取图像宽高
h, w = img.shape[:2]
# 设置旋转的中心和旋转角度
center = (w // 2, h // 2)
angle = -90
# 计算缩放因子
scale = 1.0
# 获取旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, scale)
# 进行图像旋转
dst = cv2.warpAffine(img, M, (w, h))
# 显示旋转后的图像
cv2.imshow('Rotated Image', dst)
# 等待按键退出
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们首先读入图像,然后对其进行旋转。我们计算图像的中心点和旋转角度,并使用getRotationMatrix2D()函数计算旋转矩阵。最后,我们使用warpAffine()函数进行旋转,并使用imshow()函数显示旋转后的图像。最后,使用waitKey()等待按键退出。
### 回答3:
Python上使用OpenCV进行图像旋转的方法如下:
1. 导入必要的Python模块
首先,我们需要导入必要的Python模块:cv2和numpy
```
import cv2
import numpy as np
```
2. 读取图像
使用cv2.imread函数读取需要旋转的图像。
```
img = cv2.imread('image.jpg')
```
3. 设定旋转角度
确定需要旋转的角度,这里以逆时针旋转90度为例,设定旋转角度为-90。
```
rot_angle = -90
```
4. 计算旋转后的图像尺寸
通过OpenCV提供的函数cv2.getRotationMatrix2D计算旋转后的图像尺寸。
```
(height, width) = img.shape[:2]
center = (width / 2, height / 2)
M = cv2.getRotationMatrix2D(center, rot_angle, 1.0)
new_width = int(height * abs(M[0, 1]) + width * abs(M[0, 0]))
new_height = int(height * abs(M[0, 0]) + width * abs(M[0, 1]))
```
5. 进行旋转操作
使用cv2.warpAffine函数进行旋转操作,将图像映射到新的尺寸。
```
M[0, 2] += (new_width - width) / 2
M[1, 2] += (new_height - height) / 2
rotated = cv2.warpAffine(img, M, (new_width, new_height), borderValue=(255, 255, 255))
```
其中,borderValue参数为边缘填充值。
6. 显示并保存旋转后的图像
使用cv2.imshow函数显示旋转后的图像,并使用cv2.waitKey等待按键操作。最后使用cv2.imwrite保存旋转后的图像。
```
cv2.imshow('Rotated', rotated)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('rotated_image.jpg', rotated)
```
这是对一张名为"image.jpg"的图片进行逆时针旋转90度,并将新图像保存为"rotated_image.jpg"的完整代码。
阅读全文