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通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
查看django版本的方法分享
May 14 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
django Serializer序列化使用方法详解
Oct 16 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
python几种常用功能实现代码实例
Dec 25 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 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类
2006/11/25 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
Vue数据双向绑定原理及简单实现方法
2018/05/18 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
总结Python编程中三条常用的技巧
2015/05/11 Python
python 队列详解及实例代码
2016/10/18 Python
Python 列表的清空方式
2020/01/13 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
测量实习生自我鉴定
2013/09/19 职场文书
工程造价专业大学生自荐信
2013/10/01 职场文书
环境工程大学生个人的自我评价
2013/10/08 职场文书
机关职员工作检讨书
2014/10/23 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2015年前台接待工作总结
2015/05/04 职场文书