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基于queue和threading实现多线程下载实例
Oct 08 Python
Python类的多重继承问题深入分析
Nov 09 Python
用python 制作图片转pdf工具
Jan 30 Python
使用Python的内建模块collections的教程
Apr 28 Python
详解python的数字类型变量与其方法
Nov 20 Python
使用python实现接口的方法
Jul 07 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
python对于requests的封装方法详解
Jan 03 Python
基于python修改srt字幕的时间轴
Feb 03 Python
解决python Jupyter不能导入外部包问题
Apr 15 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 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 CKEditor 上传图片实现代码
2009/11/06 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
php的常量和变量实例详解
2017/06/27 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
python实现银行管理系统
2019/10/25 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
python队列原理及实现方法示例
2019/11/27 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
贝佳斯官方网站:Borghese
2020/05/08 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
教师实习期自我鉴定
2013/10/06 职场文书
2014年人事部工作总结
2014/12/03 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫