在Python中使用picamera.array模块进行图像旋转和翻转
发布时间:2023-12-28 04:14:27
在Python中使用picamera.array模块进行图像旋转和翻转的示例代码如下:
import time
import picamera
import picamera.array
from PIL import Image
# 设置摄像头分辨率
RESOLUTION = (640, 480)
# 创建摄像头对象
camera = picamera.PiCamera()
# 设置摄像头分辨率
camera.resolution = RESOLUTION
# 创建数组输出对象
output = picamera.array.PiRGBArray(camera)
# 拍摄图像
camera.capture(output, 'rgb')
# 获取图像数组
image_array = output.array
# 创建PIL图像对象
image = Image.fromarray(image_array)
# 旋转图像
rotated_image = image.rotate(90)
# 翻转图像
flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT)
# 保存旋转后的图像
rotated_image.save('rotated_image.jpg')
# 保存翻转后的图像
flipped_image.save('flipped_image.jpg')
# 清空数组
output.truncate(0)
# 关闭摄像头
camera.close()
说明:
- 首先,我们导入所需的库,包括picamera、picamera.array和PIL库。
- 然后,我们设置摄像头的分辨率,并创建一个摄像头对象。
- 我们创建一个数组输出对象,并使用该对象拍摄一张图像。
- 使用output.array获取该图像的数组表示,并使用Image.fromarray()将其转换为PIL图像对象。
- 我们可以使用rotate()方法对图像进行旋转,通过传递旋转角度作为参数来指定旋转的角度。
- 同样地,我们可以使用transpose()方法对图像进行翻转,通过传递Image.FLIP_LEFT_RIGHT常量来指定要水平翻转图像。
- 最后,我们可以使用save()方法将旋转后的图像和翻转后的图像保存到文件中。
- 清空数组后关闭摄像头。
这个示例演示了如何使用picamera.array模块以及PIL库对图像进行旋转和翻转。你可以根据自己的需求自定义分辨率和保存文件的名称。
