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类参数self使用示例
Feb 17 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
Python向日志输出中添加上下文信息
May 24 Python
Python中扩展包的安装方法详解
Jun 14 Python
解决python大批量读写.doc文件的问题
May 08 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
python的中异常处理机制
Aug 30 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
python实现UDP协议下的文件传输
Mar 20 Python
python获取系统内存占用信息的实例方法
Jul 17 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面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP中的类型约束介绍
2015/05/11 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
PHP PDO操作总结
2014/11/17 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
python实现字符串加密成纯数字
2019/03/19 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
python删除某个目录文件夹的方法
2020/05/26 Python
荷兰电脑专场:Paradigit
2018/05/05 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
优秀中专生推荐信
2013/11/17 职场文书
营销专业应届生求职信
2013/11/26 职场文书
董事长助理岗位职责
2014/02/18 职场文书
房屋授权委托书范本
2014/10/07 职场文书
宾馆客房管理制度
2015/08/06 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
安全责任协议书范本
2016/03/23 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
mysql全面解析json/数组
2022/07/07 MySQL