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开发之thread实现布朗运动的方法
Nov 11 Python
python 字典(dict)按键和值排序
Jun 28 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
用Python实现命令行闹钟脚本实例
Sep 05 Python
python如何实现反向迭代
Mar 20 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
Python判断有效的数独算法示例
Feb 23 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
Python守护进程实现过程详解
Feb 10 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
Django中Aggregation聚合的基本使用方法
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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
webpack多页面开发实践
2017/12/18 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python运用于数据分析的简单教程
2015/03/27 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
解决Python3下map函数的显示问题
2019/12/04 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
什么是URL
2015/12/13 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
一体化教学实施方案
2014/05/10 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
Flask搭建一个API服务器的步骤
2021/05/28 Python