本文用 Python 实现 PS 图像调整中的饱和度调整算法,具体的算法原理和效果可以参考之前的博客:
http://blog.csdn.net/matrix_space/article/details/22992961
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
img_out = img * 1.0
Increment = 0.5
img_min = img.min(axis=2)
img_max = img.max(axis=2)
Delta = (img_max - img_min) / 255.0
value = (img_max + img_min) / 255.0
L = value/2.0
mask_1 = L < 0.5
s1 = Delta/(value + 0.001)
s2 = Delta/(2 - value + 0.001)
s = s1 * mask_1 + s2 * (1 - mask_1)
if Increment >= 0 :
temp = Increment + s
mask_2 = temp > 1
alpha_1 = s
alpha_2 = s * 0 + 1 - Increment
alpha = alpha_1 * mask_2 + alpha_2 * (1 - mask_2)
alpha = 1/(alpha + 0.001) -1
img_out[:, :, 0] = img[:, :, 0] + (img[:, :, 0] - L * 255.0) * alpha
img_out[:, :, 1] = img[:, :, 1] + (img[:, :, 1] - L * 255.0) * alpha
img_out[:, :, 2] = img[:, :, 2] + (img[:, :, 2] - L * 255.0) * alpha
else:
alpha = Increment
img_out[:, :, 0] = L * 255.0 + (img[:, :, 0] - L * 255.0) * (1 + alpha)
img_out[:, :, 1] = L * 255.0 + (img[:, :, 1] - L * 255.0) * (1 + alpha)
img_out[:, :, 2] = L * 255.0 + (img[:, :, 2] - L * 255.0) * (1 + alpha)
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.imshow(img/255.0)
plt.axis('off')
plt.figure(2)
plt.imshow(img_out)
plt.axis('off')
plt.show()
饱和度调整算法说明(完整python代码在文末):
本算法主要是利用HSL颜色空间进行饱和度S的上下限控制,对RGB空间进行补丁式调整。调整过程在RGB空间进行,其原理简单地说就是判断每个像素的R、G、B值是否大于或小于平均值,大于加上调整值,小于则减去调整值,如何计算各个像素点的调整系数是关键。本算法主体思想就是利用HSL来计算各点的调整系数。
算法过程如下:
(参考CSDN博客:http...
Android开发中经常会遇到一些简单的图片处理,比如修改图片的颜色,饱和度,亮度等。今天就给大家介绍一下简单的图片处理。基础知识颜色的三要素
色调(色相/颜色):物体的颜色;
饱和度(彩度):色彩的鲜艳度。颜色的纯度:0(灰)~100%(饱和);
亮度(明度):眼睛对光源和物体表面的明暗程度的感觉,主要是由光线强弱决定的一种视觉经验。
ARGB模型A:alpha,透明度;
R:red,红色;
算法参考自 阿发伯 的博客.http://blog.csdn.net/maozefa饱和度调整图像的饱和度调整有很多方法,最简单的就是判断每个象素的R、G、B值是否大于或小于128,大于加上调整值,小于则减去调整值;也可将象素RGB转换为HSV或者HSL,然后调整其S部分,从而达到线性调整图象饱和度的目的。这几种方法我都测试过,效果均不太好,简单的就不说了,利用H...
input_image = cv2.cvtColor(input_image , cv2.COLOR_BGR2HLS)
# saturation
input_image [:, :, 2] = sclale_value * input_image [:, :, 2]
input_image [:, :, 2][input_image [:, :, 2] > 1] = 1
# HLS2BGR
input_image = cv2.cvtC
在Photoshop里也可以做到批量修改图片的亮度和饱和度,但是很多人都没有条件使用Photoshop,此外,Photoshop里的批量修改其实很耗性能,而且使用起来并不是很方便。
那我们能不能用Python做一个小工具,先找到合适的亮度和饱和度,然后再根据这个指定的值对所有需要做相似调整的图片做批量修改呢?答案是肯定的。
开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。
Windows环境下打开Cmd(开始—运行—..
Python人脸识别OpenCV 简介安装 OpenCV 模块OpenCV 基本使用人脸检测使用 OpenCV 进行人脸检测插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
OpenCV 简介
OpenCV 的全称是 Open Source Computer Vision Library,是
饱和度调整算法说明(完整python代码在文末):本算法主要是利用HSL颜色空间进行饱和度S的上下限控制,对RGB空间进行补丁式调整。调整过程在RGB空间进行,其原理简单地说就是判断每个像素的R、G、B值是否大于或小于平均值,大于加上调整值,小于则减去调整值,如何计算各个像素点的调整系数是关键。本算法主体思想就是利用HSL来计算各点的调整系数。算法过程如下:1. 首先将RGB空间图像转换为HSL空...