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 mysqldb连接数据库
Mar 16 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
Django保护敏感信息的方法示例
May 09 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
python编写计算器功能
Oct 25 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 Python
Python必备技巧之字符数据操作详解
Mar 23 Python
Python必备技巧之函数的使用详解
Apr 04 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模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
零基础php编程好学吗
2019/10/11 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
js实现图片360度旋转
2017/01/22 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
python统计cpu利用率的方法
2015/06/02 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python实现学生成绩管理系统
2020/04/05 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
运动会100米解说词
2014/01/23 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
保险公司年会主持词
2014/03/22 职场文书
家长反馈意见及建议
2015/06/03 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
小组口号霸气押韵
2015/12/24 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
python3 删除所有自定义变量的操作
2021/04/08 Python
vue+echarts实现多条折线图
2022/03/21 Vue.js