用python、opencv实现图像的无损旋转
时间: 2024-05-11 10:13:48 浏览: 87
Python+OpenCV 实现图片无损旋转90°且无黑边
以下是使用Python和OpenCV实现图像无损旋转的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 获取图像的宽度和高度
height, width = img.shape[:2]
# 指定旋转中心为图像中心
center = (width/2, height/2)
# 指定旋转角度(逆时针旋转90度)
angle = 90
# 计算旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, 1.0)
# 旋转图像
rotated_img = cv2.warpAffine(img, M, (width, height))
# 保存旋转后的图像
cv2.imwrite('rotated_image.jpg', rotated_img)
```
在这个示例中,我们首先使用`cv2.imread`函数读取图像。然后,我们使用`img.shape`函数获取图像的宽度和高度,并将它们存储在变量`width`和`height`中。接下来,我们指定旋转中心为图像中心,并指定旋转角度为90度(逆时针旋转)。然后,我们使用`cv2.getRotationMatrix2D`函数计算旋转矩阵,并使用`cv2.warpAffine`函数将图像旋转。最后,我们使用`cv2.imwrite`函数保存旋转后的图像。
注意,这里的旋转是无损的,因为我们使用了`cv2.warpAffine`函数来旋转图像。这个函数使用插值算法来计算旋转后的像素值,从而避免了图像质量的损失。
阅读全文