Python实现 PS 图像调整中的亮度调整


Posted in Python onJune 28, 2019

本文用 Python 实现 PS 图像调整中的亮度调整,具体的算法原理和效果可以参考之前的博客:

import matplotlib.pyplot as plt
from skimage import io
file_name='D:/Image Processing/PS Algorithm/4.jpg';
img=io.imread(file_name)
Increment = -10.0
img = img * 1.0 
I = (img[:, :, 0] + img[:, :, 1] + img[:, :, 2])/3.0 + 0.001
mask_1 = I > 128.0
r = img [:, :, 0]
g = img [:, :, 1]
b = img [:, :, 2]
rhs = (r*128.0 - (I - 128.0) * 256.0) / (256.0 - I) 
ghs = (g*128.0 - (I - 128.0) * 256.0) / (256.0 - I)
bhs = (b*128.0 - (I - 128.0) * 256.0) / (256.0 - I)
rhs = rhs * mask_1 + (r * 128.0 / I) * (1 - mask_1)
ghs = ghs * mask_1 + (g * 128.0 / I) * (1 - mask_1)
bhs = bhs * mask_1 + (b * 128.0 / I) * (1 - mask_1)
I_new = I + Increment - 128.0
mask_2 = I_new > 0.0
R_new = rhs + (256.0-rhs) * I_new / 128.0
G_new = ghs + (256.0-ghs) * I_new / 128.0
B_new = bhs + (256.0-bhs) * I_new / 128.0
R_new = R_new * mask_2 + (rhs + rhs * I_new/128.0) * (1-mask_2)
G_new = G_new * mask_2 + (ghs + ghs * I_new/128.0) * (1-mask_2)
B_new = B_new * mask_2 + (bhs + bhs * I_new/128.0) * (1-mask_2)
Img_out = img * 1.0
Img_out[:, :, 0] = R_new
Img_out[:, :, 1] = G_new
Img_out[:, :, 2] = B_new
Img_out = Img_out/255.0
# 饱和处理
mask_1 = Img_out < 0 
mask_2 = Img_out > 1
Img_out = Img_out * (1-mask_1)
Img_out = Img_out * (1-mask_2) + mask_2
plt.figure()
plt.imshow(img/255.0)
plt.axis('off')
plt.figure(2)
plt.imshow(Img_out)
plt.axis('off')
plt.figure(3)
plt.imshow(I/255.0, plt.cm.gray)
plt.axis('off')
plt.show()

总结

以上所述是小编给大家介绍的Python实现 PS 图像调整中的亮度调整 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python处理文本换行符实例代码
Feb 03 Python
python中for用来遍历range函数的方法
Jun 08 Python
python模块导入的细节详解
Dec 10 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
Python requests模块安装及使用教程图解
Jun 30 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python爬虫之selenium库的安装及使用教程
May 23 Python
Python实现自动玩连连看的脚本分享
Apr 04 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 #Python
python启动应用程序和终止应用程序的方法
Jun 28 #Python
简单了解python高阶函数map/reduce
Jun 28 #Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 #Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 #Python
python识别图像并提取文字的实现方法
Jun 28 #Python
python3射线法判断点是否在多边形内
Jun 28 #Python
You might like
php 生成饼图 三维饼图
2009/09/28 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
Django框架使用mysql视图操作示例
2019/05/15 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
工商管理专业职业生涯规划
2014/01/01 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
租房协议书
2014/09/12 职场文书
无犯罪记录证明
2014/09/19 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
母亲去世追悼词
2015/06/23 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书