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编写简单网络爬虫抓取视频下载资源
Nov 04 Python
python创建进程fork用法
Jun 04 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
Flask框架web开发之零基础入门
Dec 10 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
如何基于python操作json文件获取内容
Dec 24 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
Python自动化测试基础必备知识点总结
Feb 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
提问的智慧
2006/10/09 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
PHP 图片水印类代码
2012/08/27 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
js实现日期级联效果
2014/01/23 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
对Python3 解析html的几种操作方式小结
2019/02/16 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Python使用进程Process模块管理资源
2020/03/05 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
介绍一下linux的文件系统
2015/10/06 面试题
2014年预算员工作总结
2014/12/05 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
鉴史问廉观后感
2015/06/10 职场文书
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js