python滑块调整图片亮度和对比度
时间: 2023-06-08 12:04:46 浏览: 108
很高兴为您解答。您可以使用OpenCV库来实现Python滑块调整图片亮度和对比度。下面是Python代码示例:
```python
import cv2
import numpy as np
def adjustBrightnessContrast(image, brightness, contrast):
# 亮度调整
if brightness != 0:
if brightness > 0:
shadow = brightness
highLight = 255
else:
shadow = 0
highLight = 255 + brightness
alpha_b = (highLight - shadow) / 255
gamma_b = shadow
# 映射表
table_b = np.array([((i / 255) * alpha_b + gamma_b) if ((i / 255) * alpha_b + gamma_b) > 0 else 0 for i in range(0, 256)]).astype("uint8")
image = cv2.LUT(image, table_b)
# 对比度调整
if contrast != 0:
f = 131 * (contrast + 127) / (127 * (131 - contrast))
alpha_c = f
gamma_c = 127 * (1 - f)
# 映射表
table_c = np.array([((i / 255) * alpha_c + gamma_c) if ((i / 255) * alpha_c + gamma_c) > 0 else 0 for i in range(0, 256)]).astype("uint8")
image = cv2.LUT(image, table_c)
return image
# 读取图片
img = cv2.imread('test.jpg')
# 创建窗口
cv2.namedWindow('image')
# 创建滑块
cv2.createTrackbar('Brightness', 'image', 0, 100, lambda x: None)
cv2.createTrackbar('Contrast', 'image', 0, 100, lambda x: None)
while True:
# 获取滑块值
brightness = cv2.getTrackbarPos('Brightness', 'image') - 50
contrast = cv2.getTrackbarPos('Contrast', 'image') - 50
# 调整亮度和对比度
img_adjust = adjustBrightnessContrast(img, brightness, contrast)
# 显示图片
cv2.imshow('image', img_adjust)
# 按下Q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放窗口和摄像头
cv2.destroyAllWindows()
```
您可以按照上述步骤来实现Python滑块调整图片亮度和对比度。希望能对您有所帮助。