Python: PS 图像调整--明度调整
本文用 Python 实现 PS 图像调整中的明度调整:
我们知道,一般的非线性RGB亮度调整只是在原有R、G、B值基础上增加和减少一定量来实现的,而PS的明度调整原理还得从前面那个公式上去找。我们将正向明度调整公式:
RGB = RGB + (255 - RGB) * value / 255
转换为
RGB = (RGB * (255 - value) + 255 * value) / 255,
如果value用1表示最大值255,则为
RGB = RGB * (1 - value) + 255 * value,
可以看出什么呢?凡是知道图像合成的人都知道这个公式,其实PS的明度调整是采用Alpha合成方式,这里的value就是Alpha,公式前面部分RGB * (1 - value)的是图像部分,后面的255 * value部分则是一个白色遮照层,明度越大,遮照层的Alpha越大,图像就越谈,反之亦然。而明度的负调整则是以一个黑色遮照层来完成的。负100%就全黑了。只有遮照层Alpha=0,也就是明度值为0时,才是完完全全的图片显示。
明度调整,利用图层的合成
如果alpha大于0,相当于利用一个白色遮罩层合成
RGB = RGB * (1 - alpha) + 255 * alpha;
如果alpha小于0,相当于利用一个黑色遮罩层合成
RGB=RGB * (1+alpha) + 0 * alpha;
import matplotlib.pyplot as plt
from skimage import io
file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=io.imread(file_name)
# -255.0 - 255.0 alpha -1.0 - 1.0
Increment = 105.0;
alpha = Increment/255.0;
def Illumi_adjust(alpha, img):
if alpha > 0 :
img_out = img * (1 - alpha) + alpha * 255.0
else:
img_out = img * (1 + alpha)
return img_out/255.0
img_out = Illumi_adjust(alpha, img)
plt.figure()
plt.imshow(img)
plt.axis('off')
plt.figure(2)
plt.imshow(img_out)
plt.axis('off')
plt.show()
原图
明度增加:
Python: PS 图像调整--明度调整的更多相关文章
- Python: PS 图像调整--饱和度调整
本文用 Python 实现 PS 图像调整中的饱和度调整算法,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...
- Python: PS 图像调整--亮度调整
本文用 Python 实现 PS 图像调整中的亮度调整,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/2 ...
- Python: PS 图像调整--对比度调整
本文用 Python 实现 PS 里的图像调整–对比度调整.具体的算法原理如下: (1).nRGB = RGB + (RGB - Threshold) * Contrast / 255 公式中,nRG ...
- Python: PS 图像调整--黑白
本文用Python 实现 PS 里的图像调整–黑白,PS 里的黑白并不是简单粗暴的将图像转为灰度图,而是做了非常精细的处理,具体的算法原理和效果图可以参考以前的博客: http://blog.csdn ...
- Python: PS 图像调整--颜色梯度
本文用 Python 实现 PS 中的色彩图,可以看到颜色的各种渐变,具体的效果可以参考以前的博客: http://blog.csdn.net/matrix_space/article/details ...
- Python: PS 图像特效 — 模糊玻璃
今天介绍一种基于高斯滤波和邻域随机采样,生成一种毛玻璃的图像特效,简单来说,就是先对图像做高斯滤波模糊,然后对模糊后的图像,通过对邻域的随机采样来赋予当前的像素点,这样,生成的图像有有一定的随机扰动和 ...
- Python: PS 图像特效 — 抽象画风
今天介绍一种基于图像分割和color map 随机采样生成一种抽象画风的图像特效,简单来说,就是先生成一张 color map 图,颜色是渐变的,然后针对要处理的图像,进行分割,这里用的是 SLIC ...
- PS 图像调整算法——饱和度调整
算法参考自 阿发伯 的博客. http://blog.csdn.net/maozefa 饱和度调整 图像的饱和度调整有很多方法,最简单的就是判断每个象素的R.G.B值是否大于或小于128,大于加上调整 ...
- PS 图像调整算法——黑白
这个算法是参考自 阿发伯 的博客: http://blog.csdn.net/maozefa 黑白调整 Photoshop CS的图像黑白调整功能,是通过对红.黄.绿.青.蓝和洋红等6种颜色的比例调节 ...
随机推荐
- go 语言字典遍历
package main import "fmt" func main() { var countryCapitalMap map[string]string /*创建集合 */ ...
- python 递增递减数列
def is_arithmetic(l): delta = l[] - l[] ): ] - l[index] == delta): return False return True print(is ...
- 安装 mysql5.7.2 (Ubuntu 16.04 desktop amd64)
1.下载mysql deb https://dev.mysql.com/downloads/mysql/ #移动到/usr/local/src/目录,解压 sudo mv mysql-server_5 ...
- python3.7 安装pyopengl,环境搭建
安装环境:win10 64位操作系统,python3.7 一.安装py库 需要用pip 安装 pip install PyOpenGL PyOpenGL_accelerate 可能会报错, 是因为没有 ...
- 新开发项目Jacoco代码覆盖率
一般只有新的项目才会去用JaCoCo工具看一下代码覆盖率, 一来看看测试有没有漏的测试用例 二来看看开发有没有留下冗余的代码 新开发项目Jacoco代码覆盖率后端接口打成jar包,进行启动 #exec ...
- JavaMail直接发送邮件
一般用JavaMail发送邮件都需要先登录到外部smtp服务器(如smtp.163.com) 二次转发,其实只要得到域名的邮件交换服务器地址(MX)就可以直接将邮件发出 这里用到了dnsjava(下载 ...
- MKAnnotationView和MKPinAnnotationView的区别
如果想创建以静态图片作为大头针图片的话,可以通过创建MKAnnotationView是实例.如果想使用apple自带的大头针则创建MKPinAnnotationView
- Spark与Flink大数据处理引擎对比分析!
大数据技术正飞速地发展着,催生出一代又一代快速便捷的大数据处理引擎,无论是Hadoop.Storm,还是后来的Spark.Flink.然而,毕竟没有哪一个框架可以完全支持所有的应用场景,也就说明不可能 ...
- SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念
SQL 基础学习(2) Joining 可以同时关联(joining)多张表进行复杂的查询. 相比于用Rails捞出数据再用Ruby进行过滤组合,使用SQL更加高效,节能. 以下是 users has ...
- 『Scrapy』爬取腾讯招聘网站
分析爬取对象 初始网址, http://hr.tencent.com/position.php?@start=0&start=0#a (可选)由于含有多页数据,我们可以查看一下这些网址有什么相 ...