python实现图像的白平衡,破坏图像的白平衡(冷、暖)和调节图像的亮度
白平衡:
让实际环境中白色的物体在你拍摄的画面中也呈现出“真正”的白色。不同性质的光源会在画面中产生不同的色彩倾向,比如说,蜡烛的光线会使画面偏橘黄色,而黄昏过后的光线则会为景物披上一层蓝色的冷调。而我们的视觉系统会自动对不同的光线作出补偿,所以无论在暖调还是冷调的光线环境下,我们看一张白纸永远还是白色的。但相机则不然,它只会直接记录呈现在它面前的色彩,这就会导致画面色彩偏暖或偏冷。
破坏白平衡:
使图像偏暖或者偏冷。
思路:
白平衡的思想是将三原色的成分比例变得近似相同,而破坏白平衡则相反,增大b分量所占比例实现冷色调,增大r分量所占比例实现暖色调。
代码如下:
import cv2
import numpy as np
import os# 将PNG文件夹下的所有图片批量处理
file = 'PNG/'
a = os.listdir(file)
print('done')
for shu in a:img = cv2.imread(file + shu, 1)height = img.shape[0]width = img.shape[1]dst = np.zeros(img.shape, img.dtype)# 1.计算三通道灰度平均值imgB = img[:, :, 0]imgG = img[:, :, 1]imgR = img[:, :, 2]# 下述3行代码控制白平衡或者冷暖色调,下例中增加了b的分量,会生成冷色调的图像,# 如要实现白平衡,则把两个+10都去掉;如要生成暖色调,则增加r的分量即可。bAve = cv2.mean(imgB)[0]gAve = cv2.mean(imgG)[0] + 10rAve = cv2.mean(imgR)[0] + 10aveGray = (int)(bAve + gAve + rAve) / 3# 2计算每个通道的增益系数bCoef = aveGray / bAvegCoef = aveGray / gAverCoef = aveGray / rAve# 3使用增益系数imgB = np.floor((imgB * bCoef)) # 向下取整imgG = np.floor((imgG * gCoef))imgR = np.floor((imgR * rCoef))# 4将数组元素后处理for i in range(0, height):for j in range(0, width):imgb = imgB[i, j]imgg = imgG[i, j]imgr = imgR[i, j]if imgb > 255:imgb = 255if imgg > 255:imgg = 255if imgr > 255:imgr = 255dst[i, j] = (imgb, imgg, imgr)cv2.imwrite('leng/' + shu[:-4] + '_n' + '.png', dst) # 输出路径
调节亮度
通过调节图像中整体的强度信息来实现。
代码如下:
import cv2
import numpy as np
import osfile1 = 'test/' # 输入路径 批量处理
file2 = 'test_A/' # 输出路径
a = os.listdir(file1)
for shu in a:img = cv2.imread(file1 + shu)img2 = np.zeros(img.shape, img.dtype)brightness = cv2.addWeighted(img, 1, img2, 2, -40)cv2.imwrite(file2 + shu[:-4] + '.png', brightness) # 处理后图像的输出路径
python实现图像的白平衡,破坏图像的白平衡(冷、暖)和调节图像的亮度相关推荐
- python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)
python使用matplotlib可视化线图(line plot).在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot) 目录
- python使用matplotlib可视化线图(line plot)、将可视化图像的图例(legend)放置在图像外部、底部区域
python使用matplotlib可视化线图(line plot).将可视化图像的图例(legend)放置在图像外部.底部区域(put legend outside and in bottom re ...
- python使用matplotlib可视化、使用annotate函数以及arrowprops参数在可视化图像中添加箭头和文本注释(arrow and text annotation)
python使用matplotlib可视化.使用annotate函数以及arrowprops参数在可视化图像中添加箭头和文本注释(arrow and text annotation) 目录
- python使用matplotlib可视化线图(line plot)、将可视化图像的图例(legend)放置在图像外部、右侧区域
python使用matplotlib可视化线图(line plot).将可视化图像的图例(legend)放置在图像外部.右侧区域(put legend outside and in right reg ...
- python使用matplotlib可视化线图(line plot)、自定义可视化图像的四个边框的色彩、可以分别设置矩形每一条边的色彩(change the axis color)
python使用matplotlib可视化线图(line plot).自定义可视化图像的四个边框的色彩.可以分别设置矩形每一条边的色彩(change the axis color of a plot ...
- python使用matplotlib可视化线图(line plot)、为可视化图像添加双Y轴、分别可视化不同范围的数据(double y axis in matplotlib)
python使用matplotlib可视化线图(line plot).为可视化图像添加双Y轴.分别可视化不同范围的数据(double y axis in matplotlib) 目录
- [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 五十八.图像增强及运算篇之图像锐化Sobel、Laplacian算子实现边缘检测
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
最新文章
- python json dump输出中文_Python读写文件(json.dump())中文被转成Unicode问题
- 函数计算工具链新成员 —— Fun Local 发布啦
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制...
- c#_委托事件的理解
- Python内置函数大全
- vue2.0 练习项目-外卖APP(2)
- 织梦需要php什么版本,DedeCmsV5.1FreeSP1正式版发布
- repl java9_Java 9抢先体验:与JShell进行动手实践– Java REPL
- python序列是几维_从一个1维的位数组获得一个特定的2维的1序列数组[Python] - python...
- 数据库连接池Demo(1)单线程初步
- C++ 时间差的计算方式
- html自适应布局源码,手机端页面自适应解决方案—rem布局进阶版(附源码示例)...
- [数字信号处理学习篇] FIR 滤波器基础(一)
- Hadoop运行原理总结
- c语言输出100以内的素数存放数组中,c语言素数(c语言输出100以内素数)
- 【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比
- 阿里云天池《“AI Earth”人工智能创新挑战赛》萌新体验
- 计算房租收入比(1)- scrapy 爬取网上租房信息
- 为什么c语言排在第一位,c语言我排第几个
- python连接不上数据库_python连接各种数据库