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使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python中的日期时间处理详解
Nov 17 Python
Python的标准模块包json详解
Mar 13 Python
Python Flask基础教程示例代码
Feb 07 Python
Python使用pickle模块实现序列化功能示例
Jul 13 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
简单了解python反射机制的一些知识
Jul 13 Python
Python交互式图形编程的实现
Jul 25 Python
Python简易版停车管理系统
Aug 12 Python
python列表返回重复数据的下标
Feb 10 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 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基于工厂模式实现的计算器实例
2015/07/16 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
农历与西历对照
2006/09/06 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
python 队列详解及实例代码
2016/10/18 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
使用django自带的user做外键的方法
2020/11/30 Python
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
病媒生物防治方案
2014/05/13 职场文书
档案信息化建设方案
2014/05/16 职场文书
商铺门前三包责任书
2014/07/25 职场文书
小学运动会报道稿
2014/10/04 职场文书
公司联欢会主持词
2015/07/04 职场文书
六五普法学习心得体会
2016/01/21 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记