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 07 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
详解Python发送email的三种方式
Oct 18 Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
pandas 对group进行聚合的例子
Dec 27 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
Python动态强类型解释型语言原理解析
Mar 25 Python
pycharm永久激活超详细教程
Oct 29 Python
requests在python中发送请求的实例讲解
Feb 17 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
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
php编程每天必学之表单验证
2016/03/01 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
angularJS 入门基础
2015/02/09 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
经贸日语专业个人求职信范文
2014/04/29 职场文书
爱我中华演讲稿
2014/05/20 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
教育合作协议范本
2014/10/17 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
alibaba seata服务端具体实现
2022/02/24 Java/Android
Python中的 Set 与 dict
2022/03/13 Python
Nginx的基本概念和原理
2022/03/21 Servers
JS实现数组去重的11种方法总结
2022/04/04 Javascript