亮度、饱和度、对比度、灰度 & RGB&HSV

亮度

RGB对应值越大亮度越大,越小越暗。
增加亮度:对RGB同时进行缩放(如果存在超出1的值,色调将发生变化,所以需要将最大的限制在1内)

饱和度

颜色的纯度。
往颜色中掺杂黑,白,灰 都会降低纯度
饱和度为0时,即为灰度
两个求灰度公式:
0.2125 * renderTex.r + 0.7154 * renderTex.g + 0.0721 * renderTex.b
Y = 0.299R + 0.587G + 0.114*B

对比度

对比度需要放在一个区域来讨论,指画面中RGB值最大的像素 和 RGB值最小的像素 的差值大小。
即最亮和最暗的差值

fixed3 avgColor = fixed3(0.5, 0.5, 0.5);
finalColor = lerp(avgColor, finalColor, _Contrast);
//_Contrast = 1: 原色彩对比
//_Contrast > 1: 提高亮度且对比度变大
//_Contrast < 1: 接近0.5,对比度变小

灰度

饱和度为0即为灰度,因为人眼原因,灰度存在计算公式,见饱和度。

unity中使用lerp函数可以调节对比度,饱和度,亮度

因为unity的lerp函数对超过1的范围进行的放大操作
需要找到 饱和度为0的值做 最小参数

RGB颜色:

红绿蓝三原色
加法混色
对应值越大,颜色越亮
(0,0,0)黑色
(1,1,1)白色
适用于计算机计算

HSV颜色:

色相,饱和度,色调
在这里插入图片描述
色相:改变颜色
饱和度:颜色纯度
色调:改变明暗

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB可以通过以下代码实现RGB到YUV、YIQ、HSV和HSI颜色空间转换: ```matlab % 定义RGB颜色空间矩阵 RGB = [0.5 0.3 0.7]; % RGB到YUV颜色空间转换 YUV = rgb2ycbcr(RGB); % RGB到YIQ颜色空间转换 YIQ = rgb2ntsc(RGB); % RGBHSV颜色空间转换 HSV = rgb2hsv(RGB); % RGB到HSI颜色空间转换 HSI = rgb2hsi(RGB); ``` RGB颜色空间是由红、绿、蓝三种颜色通道组成的,而YUV和YIQ颜色空间是由亮度(Y)和色度(U、V或I、Q)三种通道组成的。HSV和HSI颜色空间则是通过将RGB颜色空间转换为柱面坐标系来表示颜色,其中H表示色相,S表示饱和度,V或I表示亮度RGB、YUV、YIQ、HSV和HSI颜色空间的差异主要包括以下几点: 1. 颜色表示方式不同:RGB颜色空间是基于颜色的三个原色(红、绿、蓝)的混合来表示颜色,而YUV和YIQ颜色空间是基于亮度和色度的组合来表示颜色,HSV和HSI颜色空间则是通过将RGB颜色转换为柱面坐标系来表示颜色。 2. 颜色亮度的计算方式不同:RGB颜色空间的亮度是通过三个颜色通道的平均计算得到的,而YUV和YIQ颜色空间的亮度是通过亮度通道(Y)计算得到的,HSV和HSI颜色空间的亮度则是通过V或I通道计算得到的。 3. 饱和度的计算方式不同:RGB颜色空间的饱和度是通过将颜色与灰度相减得到的,而HSV和HSI颜色空间的饱和度则是通过将颜色与最大相减得到的。 4. 色相的计算方式不同:RGB颜色空间没有明确的色相概念,而HSV颜色空间的色相是通过将RGB颜色转换为柱面坐标系后的角度来计算的,HSI颜色空间的色相则是通过将RGB颜色转换为柱面坐标系后的极角来计算的。 总之,不同的颜色空间有不同的特点和应用场景,根据需要选择合适的颜色空间才能更好地实现相应的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值