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 相关文章推荐
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
Python编程实现的简单Web服务器示例
Jun 22 Python
Python中int()函数的用法浅析
Oct 17 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
python 按照固定长度分割字符串的方法小结
Apr 30 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
django主动抛出403异常的方法详解
Jan 04 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
python自动化之Ansible的安装教程
Jun 13 Python
4行Python代码生成图像验证码(2种)
Apr 07 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
AJAX使用了UpdatePanel后无法使用alert弹出脚本
2010/04/02 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
python url 参数修改方法
2018/12/26 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
大学生职业生涯规划书模板
2014/01/03 职场文书
宣传普通话标语
2014/06/27 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers