基于python的亮度检测_基于python的图像亮度自适应调整

本文介绍了使用Python进行图像亮度检测和自适应调整的方法。通过计算图像的亮度并设定阈值,实现对亮度不足的图像进行增强,亮度足够的图像则不作处理。代码中运用了numpy和OpenCV库,包括计算分位点、去除异常值、拉伸像素值以及转换颜色空间等步骤。
摘要由CSDN通过智能技术生成

import numpy as np

import cv2

def compute(img, min_percentile, max_percentile):

"""计算分位点,目的是去掉图1的直方图两头的异常情况"""

max_percentile_pixel = np.percentile(img, max_percentile)

min_percentile_pixel = np.percentile(img, min_percentile)

return max_percentile_pixel, min_percentile_pixel

def aug(src):

"""图像亮度增强"""

if get_lightness(src)>130:

print("图片亮度足够,不做增强")

# 先计算分位点,去掉像素值中少数异常值,这个分位点可以自己配置。

# 比如1中直方图的红色在0到255上都有值,但是实际上像素值主要在0到20内。

max_percentile_pixel, min_percentile_pixel = compute(src, 1, 99)

# 去掉分位值区间之外的值

src[src>=max_percentile_pixel] = max_percentile_pixel

src[src<=min_percentile_pixel] = min_percentile_pixel

# 将分位值区间拉伸到0到255,这里取了255*0.1与255*0.9是因为可能会出现像素值溢出的情况,所以最好不要设置为0到255。

out = np.zeros(src.shape, src.dtype)

cv2.normalize(src, out, 255*0.1,255*0.9,cv2.NORM_MINMAX)

return out

def get_lightness(src):

# 计算亮度

hsv_image = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)

lightness = hsv_image[:,:,2].mean()

return lightness

img = cv2.imread(r"data/test.png")

img = aug(img)

cv2.imwrite('out.png', img)

以上是亮度自适应调节的Python代码实现,设定一个亮度阈值,小于阈值进行调整,大于阈值则无需调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值