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使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
python求crc32值的方法
Oct 05 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
Python 忽略warning的输出方法
Oct 18 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python二次规划和线性规划使用实例
Dec 09 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
浅析Python迭代器的高级用法
Jul 16 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 Python
Python pandas之求和运算和非空值个数统计
Aug 07 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/10/22 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
node.js实现快速截图
2016/08/27 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
英文版网络工程师求职信
2013/10/28 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
廉洁教育学习材料
2014/05/19 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
党员目标管理责任书
2014/07/25 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
治庸问责心得体会
2014/09/12 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
整脏治乱工作简报
2015/07/21 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
Python进程间的通信之语法学习
2022/04/11 Python