本文转载自:FPGA入门到精通微信公众号
在数字影像的世界里,色彩斑斓的画面总能引人入胜。而在这其中,饱和度调节技术就像一位光影魔术师,为图像注入活力与生机。
本文将详细介绍饱和度调节的知识、常用的算法以及FPGA实现。
一、饱和度知识介绍
S(Saturation)代表饱和度,它是描述颜色的一种属性,用来表示颜色的纯净度和鲜艳程度。
饱和度S表示颜色的纯净度,即颜色的鲜明程度。当饱和度S为1时,表示颜色完全饱和,即颜色是最纯净、最鲜明的;而当饱和度S为0时,表示颜色完全去饱和,即颜色变为灰度,没有鲜明的色彩。
饱和度S的变化会影响到颜色的外观,使得颜色变得更加鲜艳或者更加柔和。当饱和度增加时,颜色变得更加鲜艳;而当饱和度减小时,颜色变得更加柔和,甚至变为灰度。
饱和度调节的意义在于,它能够提升图像的视觉效果,使画面更具吸引力。
在不同应用场景下,通过调整饱和度,我们可以实现以下目的:
1、使图像色彩更加真实:在户外拍摄等场景中,饱和度调节可以还原场景的真实色彩,使图像更具说服力。
2、增强图像氛围:在处理风景、人像等题材时,适当提高饱和度,可以增强图像的氛围,提升画面的美感。
3、突出主题:在特定场景下,通过饱和度调节,可以突出图像的主题,使画面更具故事性。
二、饱和度调节方法
1、HSV/HSL颜色空间调节方法
(1)RGB转HSV/HSL
(2)通过改变饱和度值S,可以增强或减弱颜色的鲜明程度。通常,饱和度的调整可以是一个线性的过程,也可以是非线性的,依赖于具体的应用需求和视觉效果。
(3)HSV/HSL转RGB
2、融合HSL和RGB颜色空间计算方法
(1)设置调整参数percent,取值为-100到100,类似PS中设置,归一化后为-1到1。
(2)针对图像所有像素点单个处理。计算RGB三通道的最大值最小值,可进一步得到delta和value:
(3)若最大最小一致,即delta=0,则表明为灰点,不需继续操作,直接处理下个像素。
(4)通过value计算出HSL中的L值:
(3)S值为:
(6)当percent大于等于0时,即提高色彩饱和度,那么alpha值为:
此时,调整后的图像RGB三通道值为:
(7)若percent小于0时,即降低色彩饱和度,则alpha=percent,此时调整后的图像RGB三通道值为:
三、FPGA实现
方法1的实现,可以基于前面RGB与HSL互转的公式来增加,饱和度调节系数实现。
方法2的实现,按照计算公式用verilog实现就行。
这里可以看下FPGA实现的效果:
从左往右,分别是饱和度-0.5,原图,饱和度+0.5,颜色越来越鲜艳。