python opencv图像旋转180°
时间: 2024-07-30 13:01:01 浏览: 190
在Python中,使用OpenCV库进行图像旋转180度的操作相对简单。OpenCV提供了`cv2.rotate()`函数来实现这个功能。下面是一个简单的例子:
```python
import cv2
import numpy as np
# 加载图像
image = cv2.imread('image.jpg')
# 将图片进行顺时针旋转180度,保留原尺寸(默认值)
rotated_image = cv2.rotate(image, cv2.ROTATE_180)
# 或者你可以先获取图像的高度和宽度
height, width = image.shape[:2]
rotated_image = cv2.rotate(image, cv2.ROTATE_180, (width, height))
# 保存旋转后的图片
cv2.imwrite('rotated_image.jpg', rotated_image)
```
在这个例子中,`cv2.ROTATE_180`是一个枚举常量,表示图像应该顺时针旋转180度。如果你想要逆时针旋转,可以将此参数改为`cv2.ROTATE_90_COUNTERCLOCKWISE`或`cv2.ROTATE_270_COUNTERCLOCKWISE`。
相关问题
python opencv读取文件夹里的图像旋转180度并保存
你可以按照以下步骤使用OpenCV在Python中读取文件夹中的图像,将其旋转180度并保存:
1. 导入OpenCV库
```python
import cv2
import os
```
2. 定义函数来旋转图像
```python
def rotate_image(image):
# 获取图像的宽度和高度
(h, w) = image.shape[:2]
# 计算旋转中心点的坐标
center = (w // 2, h // 2)
# 定义旋转角度为180度
angle = 180
# 通过指定旋转中心、旋转角度和缩放比例来构造旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, 1.0)
# 应用旋转矩阵来旋转图像
rotated = cv2.warpAffine(image, M, (w, h))
# 返回旋转后的图像
return rotated
```
3. 遍历文件夹中的所有图像文件
```python
# 定义要读取的文件夹路径
folder_path = '/path/to/your/folder'
# 遍历文件夹中的所有图像文件
for filename in os.listdir(folder_path):
# 如果文件名以'.jpg'或'.png'结尾,则说明是图像文件
if filename.endswith('.jpg') or filename.endswith('.png'):
# 构造图像文件的完整路径
image_path = os.path.join(folder_path, filename)
# 读取图像文件
image = cv2.imread(image_path)
# 对图像进行旋转
rotated_image = rotate_image(image)
# 构造旋转后的图像文件的完整路径
rotated_image_path = os.path.join(folder_path, 'rotated_' + filename)
# 保存旋转后的图像文件
cv2.imwrite(rotated_image_path, rotated_image)
```
这样,文件夹中的所有图像文件都会被旋转180度并保存。
opencv 图像旋转
使用 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,表示不进行缩放操作。
阅读全文