python如何读取一张图片,并将图像旋转180度并保存,使用opencv回答
时间: 2024-03-05 21:51:01 浏览: 145
可以使用OpenCV来读取一张图片,并将图像旋转180度并保存。下面是Python代码示例:
import cv2
# 读取图片
img = cv2.imread("image.jpg")
# 获取图片的宽度和高度
height, width = img.shape[:2]
# 旋转图片
M = cv2.getRotationMatrix2D((width/2, height/2), 180, 1)
rotated_img = cv2.warpAffine(img, M, (width, height))
# 保存旋转后的图片
cv2.imwrite("rotated_image.jpg", rotated_img)
在代码中,首先使用cv2.imread()
函数读取一张图片,并将其存储在img
变量中。然后,使用img.shape
属性获取图像的宽度和高度。接下来,使用cv2.getRotationMatrix2D()
函数获取旋转矩阵,其中(width/2, height/2)
表示旋转中心,180
表示旋转角度,1
表示缩放因子。最后,使用cv2.warpAffine()
函数将旋转矩阵应用于图像,并返回旋转后的图像。最后,使用cv2.imwrite()
函数将旋转后的图像保存到本地。
相关问题
python opencv读取文件夹里的图像旋转180度并保存
你可以按照以下步骤使用OpenCV在Python中读取文件夹中的图像,将其旋转180度并保存:
- 导入OpenCV库
import cv2
import os
- 定义函数来旋转图像
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
- 遍历文件夹中的所有图像文件
# 定义要读取的文件夹路径
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度并保存。
python opencv图像旋转180°
在Python中,使用OpenCV库进行图像旋转180度的操作相对简单。OpenCV提供了cv2.rotate()
函数来实现这个功能。下面是一个简单的例子:
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
。
相关推荐















