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实现代码行数统计示例分享
Feb 10 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
python实现FTP服务器服务的方法
Apr 11 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
Python 移动光标位置的方法
Jan 20 Python
pandas修改DataFrame列名的实现方法
Feb 22 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
Python yield的用法实例分析
Mar 06 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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图片缩放实现方法
2014/02/20 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
Jquery replace 字符替换实现代码
2010/12/02 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
jquery移动节点实例
2015/01/14 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python实现二维插值的三维显示
2018/12/17 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Python之修改图片像素值的方法
2019/07/03 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
Python使用Matlab命令过程解析
2020/06/04 Python
全球在线商店:BerryLook
2019/04/14 全球购物
C语言基础笔试题
2013/04/27 面试题
机械专业应届生求职信
2013/12/12 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
体育专业求职信
2014/07/16 职场文书
实用求职信模板范文
2019/05/13 职场文书