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实现一个简单的项目监控
Mar 31 Python
Python下载懒人图库JavaScript特效
May 28 Python
Python中subprocess的简单使用示例
Jul 28 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
opencv实现简单人脸识别
Feb 19 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python中解析JSON并同时进行自定义编码处理实例
2015/02/08 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
优秀学生干部推荐材料
2014/02/03 职场文书
财产公证书格式
2014/04/10 职场文书
六一亲子活动总结
2014/07/01 职场文书
安全例会汇报材料
2014/08/23 职场文书
2014年除四害工作总结
2014/12/06 职场文书
乐山大佛导游词
2015/02/02 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
PHP获取学生成绩的方法
2021/11/17 PHP