在Python中使用picamera.array模块进行图像的亮度和对比度调整
发布时间:2023-12-28 04:14:45
在Python中,使用picamera库中的array模块可以对图像进行亮度和对比度的调整。下面是一个使用picamera.array模块进行图像亮度和对比度调整的示例代码:
import picamera
import picamera.array
import numpy as np
# 初始化摄像头
camera = picamera.PiCamera()
# 设置摄像头分辨率
camera.resolution = (640, 480)
# 创建一个用于捕捉图像的数组
image_array = np.empty((camera.resolution[1], camera.resolution[0], 3), dtype=np.uint8)
# 设置亮度和对比度的变化量
brightness = 0
contrast = 1.0
# 捕捉图像并将其存储在数组中
camera.capture(image_array, format='rgb')
# 调整图像的亮度和对比度
image_array = np.clip((image_array * contrast + brightness), 0, 255).astype(np.uint8)
# 将数组中的图像保存为图像文件
picamera.array.array_to_img(image_array).save('adjusted_image.jpg')
# 关闭摄像头
camera.close()
在上面的示例代码中,我们首先导入了picamera和picamera.array库。接下来,我们创建了一个Picamera对象并设置了摄像头的分辨率。然后,我们创建了一个空的数组来存储捕捉到的图像。
在捕捉图像后,我们可以通过修改brightness和contrast变量的值来调整图像的亮度和对比度。亮度的范围是从-255到255,对比度的范围是从0.0到2.0。我们可以将亮度增加或减少255个单位,将对比度增加或减少1.0个单位。
接下来,我们使用numpy库中的clip函数将图像的亮度和对比度调整限制在0到255的范围内,并将数组的数据类型转换为无符号8位整数。然后,我们使用picamera.array库中的array_to_img函数将数组中的图像保存为图像文件。
最后,我们关闭了摄像头。
可以根据自己的需求修改和扩展上述示例代码。
