Python实现PS图像调整之对比度调整功能示例


Posted in Python onJanuary 26, 2018

本文实例讲述了Python实现PS图像调整之对比度调整功能。分享给大家供大家参考,具体如下:

这里用 Python 实现 PS 里的图像调整?对比度调整。具体的算法原理如下:

(1)、nRGB = RGB + (RGB - Threshold) * Contrast / 255

公式中,nRGB表示图像像素新的R、G、B分量,RGB表示图像像素R、G、B分量,Threshold为给定的阈值,Contrast为处理过的对比度增量。

Photoshop对于对比度增量,是按给定值的正负分别处理的:

当增量等于-255时,是图像对比度的下端极限,此时,图像RGB各分量都等于阈值,图像呈全灰色,灰度图上只有1条线,即阈值灰度;

当增量大于-255且小于0时,直接用上面的公式计算图像像素各分量;

当增量等于255时,是图像对比度的上端极限,实际等于设置图像阈值,图像由最多八种颜色组成,灰度图上最多8条线,即红、黄、绿、青、蓝、紫及黑与白;

当增量大于0且小于255时,则先按下面公式(2)处理增量,然后再按上面公式(1)计算对比度:

(2)、nContrast = 255 * 255 / (255 - Contrast) - 255
公式中的nContrast为处理后的对比度增量,Contrast为给定的对比度增量。

# -*- coding: utf-8 -*-
#! python3
import matplotlib.pyplot as plt
from skimage import io
file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=io.imread(file_name)
img = img * 1.0
thre = img.mean()
# -100 - 100
contrast = -55.0
img_out = img * 1.0
if contrast <= -255.0:
  img_out = (img_out >= 0) + thre -1
elif contrast > -255.0 and contrast < 0:
  img_out = img + (img - thre) * contrast / 255.0
elif contrast < 255.0 and contrast > 0:
  new_con = 255.0 *255.0 / (256.0-contrast) - 255.0
  img_out = img + (img - thre) * new_con / 255.0
else:
  mask_1 = img > thre
  img_out = mask_1 * 255.0
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.title('3water.com')
plt.imshow(img/255.0)
plt.axis('off')
plt.figure(2)
plt.title('3water.com')
plt.imshow(img_out)
plt.axis('off')
plt.show()

运行效果图

Python实现PS图像调整之对比度调整功能示例

Python实现PS图像调整之对比度调整功能示例

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

Python 相关文章推荐
Python 的 with 语句详解
Jun 13 Python
浅析Python的Django框架中的Memcached
Jul 23 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
django+mysql的使用示例
Nov 23 Python
Python中base64与xml取值结合问题
Dec 22 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
pandas取dataframe特定行列的实现方法
May 24 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 #Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 #Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 #Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 #Python
python如何重载模块实例解析
Jan 25 #Python
Python进程间通信Queue实例解析
Jan 25 #Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 #Python
You might like
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
Python高斯消除矩阵
2019/01/02 Python
python多线程分块读取文件
2019/08/29 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
大学毕业自我鉴定范文
2014/02/03 职场文书
师说教学反思
2014/02/07 职场文书
入党介绍人评语
2014/05/06 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
教你怎么用python selenium实现自动化测试
2021/05/27 Python
 Python 中 logging 模块使用详情
2022/03/03 Python
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS