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中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
基于python修改srt字幕的时间轴
Feb 03 Python
Python守护进程实现过程详解
Feb 10 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
基于SpringBoot构造器注入循环依赖及解决方式
Apr 26 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 Python
python推导式的使用方法实例
Feb 28 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+ajax实时刷新简单实例
2015/02/25 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
小学教师自我鉴定
2013/11/07 职场文书
会计辞职信范文
2014/01/15 职场文书
战友聚会邀请函
2014/01/18 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
离婚协议书范文
2015/01/26 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
教师继续教育反思周记
2015/06/25 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
大学生读书笔记范文
2015/07/01 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL