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 13 Python
Python实现文件复制删除
Apr 19 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
python更改已存在excel文件的方法
May 03 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
python 同时读取多个文件的例子
Jul 16 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
django 模型字段设置默认值代码
Jul 15 Python
Python基础之进程详解
May 21 Python
python多次执行绘制条形图
Apr 20 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开发模式(简写版)
2007/03/15 PHP
将php数组输出html表格的方法
2014/02/24 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
Js四则运算函数代码
2012/07/21 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
python基础教程之循环介绍
2014/08/29 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
代码详解django中数据库设置
2019/01/28 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
汽车维修工岗位职责
2014/02/12 职场文书
司机检讨书
2014/02/13 职场文书
高中军训感言800字
2014/03/05 职场文书
信息管理应届生求职信
2014/03/07 职场文书
投资意向书范本
2014/04/01 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书