欢迎访问宙启技术站
智能推送

在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库对图像进行旋转和翻转。你可以根据自己的需求自定义分辨率和保存文件的名称。