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实现360的字符显示界面
Feb 21 Python
Python实现的简单hangman游戏实例
Jun 28 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
python如何获取服务器硬件信息
May 11 Python
Python中一般处理中文的几种方法
Mar 06 Python
pandas中的series数据类型详解
Jul 06 Python
python 消费 kafka 数据教程
Dec 21 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
python tkinter Entry控件的焦点移动操作
May 22 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 各种排序算法实现代码
2009/08/20 PHP
使用PHP编写的SVN类
2013/07/18 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
异步加载script的代码
2011/01/12 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
python异常处理try except过程解析
2020/02/03 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
城市轨道专业个人求职信范文
2013/09/23 职场文书
会计专业推荐信
2013/10/29 职场文书
网络维护中文求职信
2014/01/03 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
AngularJS实现多级下拉框
2022/03/25 Javascript