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的绘图工具matplotlib使用实例
Jul 03 Python
windows下安装Python和pip终极图文教程
Mar 05 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
PyTorch 1.0 正式版已经发布了
Dec 13 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
python第三方库学习笔记
Feb 07 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
django 多数据库及分库实现方式
Apr 01 Python
python爬虫基础之urllib的使用
Dec 31 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更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
python实现中文转换url编码的方法
2016/06/14 Python
Python实现自动上京东抢手机
2018/02/06 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
python 模拟登录B站的示例代码
2020/12/15 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
应届毕业生个人求职自荐信
2014/01/06 职场文书
家长写给孩子的评语
2014/04/18 职场文书
促销活动计划书
2014/05/02 职场文书
奖励通知
2015/04/22 职场文书
道歉情书大全
2015/05/12 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS