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制作一个桌面便签软件
Aug 09 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
简单实现Python爬取网络图片
Apr 01 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 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
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
JQuery验证工具类搜集整理
2013/01/16 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
python代码制作configure文件示例
2014/07/28 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
学习党章思想汇报
2014/01/07 职场文书
七年级生物教学反思
2014/01/30 职场文书
公司市场部岗位职责
2015/04/15 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫