Python实现PS图像明亮度调整效果示例


Posted in Python onJanuary 23, 2018

本文实例讲述了Python实现PS图像明亮度调整效果。分享给大家供大家参考,具体如下:

这里用 Python 实现 PS 图像调整中的明度调整:

我们知道,一般的非线性RGB亮度调整只是在原有R、G、B值基础上增加和减少一定量来实现的,而PS的明度调整原理还得从前面那个公式上去找。我们将正向明度调整公式:

RGB = RGB + (255 - RGB) * value / 255

转换为

RGB = (RGB * (255 - value) + 255 * value) / 255

如果value用1表示最大值255,则为

RGB = RGB * (1 - value) + 255 * value

可以看出什么呢?凡是知道图像合成的人都知道这个公式,其实PS的明度调整是采用Alpha合成方式,这里的value就是Alpha,公式前面部分RGB * (1 - value)的是图像部分,后面的255 * value部分则是一个白色遮照层,明度越大,遮照层的Alpha越大,图像就越谈,反之亦然。而明度的负调整则是以一个黑色遮照层来完成的。负100%就全黑了。只有遮照层Alpha=0,也就是明度值为0时,才是完完全全的图片显示。

明度调整,利用图层的合成

如果alpha大于0,相当于利用一个白色遮罩层合成

RGB = RGB * (1 - alpha) + 255 * alpha;

如果alpha小于0,相当于利用一个黑色遮罩层合成

RGB=RGB * (1+alpha) + 0 * alpha;

import matplotlib.pyplot as plt
from skimage import io
file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=io.imread(file_name)
# -255.0 - 255.0 alpha -1.0 - 1.0
Increment = 105.0;
alpha = Increment/255.0;
def Illumi_adjust(alpha, img):
  if alpha > 0 :
    img_out = img * (1 - alpha) + alpha * 255.0
  else:
    img_out = img * (1 + alpha)
  return img_out/255.0
img_out = Illumi_adjust(alpha, img)
plt.figure()
plt.imshow(img)
plt.axis('off')
plt.figure(2)
plt.imshow(img_out)
plt.axis('off')
plt.show()

原图

Python实现PS图像明亮度调整效果示例

明度增加:

Python实现PS图像明亮度调整效果示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
Python中操作文件之write()方法的使用教程
May 25 Python
python线程、进程和协程详解
Jul 19 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
python pytest进阶之fixture详解
Jun 27 Python
Python pandas如何向excel添加数据
May 22 Python
keras:model.compile损失函数的用法
Jul 01 Python
python数据抓取3种方法总结
Feb 07 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 Python
matplotlib绘图实例演示标记路径
Jan 23 #Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 #Python
Python实现PS图像抽象画风效果的方法
Jan 23 #Python
matplotlib作图添加表格实例代码
Jan 23 #Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 #Python
Django实现组合搜索的方法示例
Jan 23 #Python
50行Python代码实现人脸检测功能
Jan 23 #Python
You might like
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
javascript中length属性的探索
2011/07/31 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Django如何配置mysql数据库
2018/05/04 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
详解Python绘图Turtle库
2019/10/12 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
民政局未婚证明
2015/06/15 职场文书
KTV员工管理制度
2015/08/06 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书