白平衡:

让实际环境中白色的物体在你拍摄的画面中也呈现出“真正”的白色。不同性质的光源会在画面中产生不同的色彩倾向,比如说,蜡烛的光线会使画面偏橘黄色,而黄昏过后的光线则会为景物披上一层蓝色的冷调。而我们的视觉系统会自动对不同的光线作出补偿,所以无论在暖调还是冷调的光线环境下,我们看一张白纸永远还是白色的。但相机则不然,它只会直接记录呈现在它面前的色彩,这就会导致画面色彩偏暖或偏冷。

破坏白平衡:

使图像偏暖或者偏冷。

思路:
白平衡的思想是将三原色的成分比例变得近似相同,而破坏白平衡则相反,增大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实现图像的白平衡,破坏图像的白平衡(冷、暖)和调节图像的亮度相关推荐

  1. python使用matplotlib可视化线图(line plot)、在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot)

    python使用matplotlib可视化线图(line plot).在可视化图像中的指定位置添加横线(add horizontal line in matplotlib plot) 目录

  2. python使用matplotlib可视化线图(line plot)、将可视化图像的图例(legend)放置在图像外部、底部区域

    python使用matplotlib可视化线图(line plot).将可视化图像的图例(legend)放置在图像外部.底部区域(put legend outside and in bottom re ...

  3. python使用matplotlib可视化、使用annotate函数以及arrowprops参数在可视化图像中添加箭头和文本注释(arrow and text annotation)

    python使用matplotlib可视化.使用annotate函数以及arrowprops参数在可视化图像中添加箭头和文本注释(arrow and text annotation) 目录

  4. python使用matplotlib可视化线图(line plot)、将可视化图像的图例(legend)放置在图像外部、右侧区域

    python使用matplotlib可视化线图(line plot).将可视化图像的图例(legend)放置在图像外部.右侧区域(put legend outside and in right reg ...

  5. python使用matplotlib可视化线图(line plot)、自定义可视化图像的四个边框的色彩、可以分别设置矩形每一条边的色彩(change the axis color)

    python使用matplotlib可视化线图(line plot).自定义可视化图像的四个边框的色彩.可以分别设置矩形每一条边的色彩(change the axis color of a plot ...

  6. python使用matplotlib可视化线图(line plot)、为可视化图像添加双Y轴、分别可视化不同范围的数据(double y axis in matplotlib)

    python使用matplotlib可视化线图(line plot).为可视化图像添加双Y轴.分别可视化不同范围的数据(double y axis in matplotlib) 目录

  7. [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. [Python从零到壹] 五十八.图像增强及运算篇之图像锐化Sobel、Laplacian算子实现边缘检测

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. python json dump输出中文_Python读写文件(json.dump())中文被转成Unicode问题
  2. 函数计算工具链新成员 —— Fun Local 发布啦
  3. 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制...
  4. c#_委托事件的理解
  5. Python内置函数大全
  6. vue2.0 练习项目-外卖APP(2)
  7. 织梦需要php什么版本,DedeCmsV5.1FreeSP1正式版发布
  8. repl java9_Java 9抢先体验:与JShell进行动手实践– Java REPL
  9. python序列是几维_从一个1维的位数组获得一个特定的2维的1序列数组[Python] - python...
  10. 数据库连接池Demo(1)单线程初步
  11. C++ 时间差的计算方式
  12. html自适应布局源码,手机端页面自适应解决方案—rem布局进阶版(附源码示例)...
  13. [数字信号处理学习篇] FIR 滤波器基础(一)
  14. Hadoop运行原理总结
  15. c语言输出100以内的素数存放数组中,c语言素数(c语言输出100以内素数)
  16. 【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比
  17. 阿里云天池《“AI Earth”人工智能创新挑战赛》萌新体验
  18. 计算房租收入比(1)- scrapy 爬取网上租房信息
  19. 为什么c语言排在第一位,c语言我排第几个
  20. python连接不上数据库_python连接各种数据库

热门文章

  1. 下载网页上的视频—Flash Video Downloader插件
  2. 补货中估计提前期不确定的需求分布公式推导
  3. 前端上传文件保存到变量中
  4. vue3+ts 实现文件在线预览
  5. PHP 手机短信发送验证码
  6. 在调试的时候碰到了Render process gone.问题
  7. 在c语言中卖水果的程序,C语言写的简易水果管理系统
  8. Linux上:使用VMware17安装Centos8.5并配置网络、WSL安装Ubuntu、
  9. UICC 之 USIM 详解全系列——USIM Demo详解
  10. destoon模板安装方法