【python】使用滑动条调整图片亮度和饱和度,比PS还方便的图片处理,cv2

本文介绍如何利用Python的cv2库简单快捷地调整图片的亮度和饱和度,操作便捷,效果媲美专业软件Photoshop。
摘要由CSDN通过智能技术生成

使用cv2调整图片亮度和饱和度,比PS还方便!

import numpy as np
import cv2

# 加载图片 读取彩色图像归一化且转换为浮点型
image = cv2.imread('./imgs/2.jpg', cv2.IMREAD_COLOR).astype(np.float32) / 255.0

# 颜色空间转换 BGR转为HLS
hlsImg = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)

# 滑动条最大值
MAX_VALUE = 10
MAX_VALUE2 = 100
# 滑动条最小值
MIN_VALUE = 0

# 调节饱和度和亮度的窗口
cv2.namedWindow("lightness and saturation", cv2.WINDOW_GUI_NORMAL)

# 创建滑动块
cv2.createTrackbar("lightness", "lightness and saturation",
                    MIN_VALUE, MAX_VALUE, lambda x:x)
cv2.createTrackbar("saturation", "lightness and saturation",
                    MIN_VALUE, MAX_VALUE2, lambda x:x)

# 调整饱和度和亮度
while True:
    # 复制原图
    hlsCopy = np.copy(hlsImg)
    # 得到 lightness 和 saturation 的值
    lightness = cv2.getTrackbarPos('lightness', 'lightness and saturation')
    saturation = cv2.getTrackbarPos('saturation', &
  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
很高兴为您解答。您可以使用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滑块调整图片亮度和对比度。希望能对您有所帮助。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值