RGB三原色

本文介绍了色彩科学的基本原理,包括三原色定义、光的色散实验、光谱的色度特性实验等内容。阐述了格拉斯曼颜色定律,解释了亮度的概念,并详细探讨了不同颜色的混合及其对视觉的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

三原色定义

光的色散实验 dispersion of light

光谱的色度特性实验 The colorimetric properties of the spectrum

格拉斯曼颜色定律

亮度

参考


三原色定义

三原色的本质是三原色具有独立性,三原色中任何一色都不能用其余两种色彩组成。另外,三原色具有最大的混合色域,其他色彩可由三原色按一定比例混合出来,并且混合后得到的颜色数目最多。

光的三原色是红绿蓝,RGB

颜料的原色定义为:吸收光的某种原色而反射出来的另外两种原色。颜料的三原色是深红,青,黄,即Cyan, Magenta, yellow.

光的色散实验 dispersion of light

指的是复色光分解为单色光的现象。牛顿在1666年最先利用三棱镜观察到光的色散,把白光分解为彩色光带。

光的色散现象说明:

(1)白光是由不同频率的光组合而成

(2)不同频率的光有不同的颜色。

光谱的色度特性实验 The colorimetric properties of the spectrum

实验方法如图所示:整个装置分为上下两个部分,上面是待测颜色,下面是红绿蓝三原色,上下同时照射到白板上。测试者观察上下部分颜色是否一致。如果不一致,调节三原色的配比,也就是调节RGB灯的亮度,直到观测者无法分辨两种颜色为止。

当所有颜色都做完一遍后,得到如下曲线:

从曲线中看出某一部分红色需要取负值,意味着用RGB混合叠加无法得到该波长对应的颜色,需要将红色与待测颜色叠加,再用绿色和蓝色混合得到叠加后的颜色。

将RGB系数归一化,即r+g+b=1,那么我们只需用r,b就可以表示各种颜色,得到如下曲线:

为了避免出现负数,进行坐标变换得到:

再填上颜色,就可以得到CIE色度图

从在马蹄形色度图中,可以得到以下结论:

(1)边缘是不同频率的电磁波对应的颜色,内部是RGB混合色。这张图包含人眼可见的所有的色调(注意这里说的是色调,不是颜色,因为色度图没有体现亮度)。

(2)最中间的位置叫做等能量点,也就是白点(white point)。

(3)沿着白点和某一颜色点的连线是等色调线,也就是说,这些颜色有一样的色调,沿着这条线向着白点中心走的时候,饱和度逐渐变弱。

补充:饱和度指色彩的鲜艳程度,也称为色彩的纯度。饱和度取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大,反之,饱和度越小。如鲜红,鲜绿,混杂上白色,灰色或其他色调的颜色,是不饱和的颜色,如绛紫,粉红等。完全不饱和的颜色根本没有色调,如黑白之间的各种灰色。黑白灰只是亮度不同。

CIE还规定了三原色:

蓝色:435.8nm

绿色:546.1nm

红色:700nm

格拉斯曼颜色定律

(1)Two colored lights appear different if they differ in either dominant wavelength, luminance or purity

定义了颜色三要素,色调(波长),亮度以及饱和度

(2)The appearance of a mixture light made from two components changes if either component changes

混合颜色中的任何一个颜色改变都会影响混合结果

(3)There are lights with different spectral power distributions but appear identical

不同光谱混合可以得到相同的颜色

(4)The intensity of a mixture of lights is the sum of the intensities of the components

混合光强是由组成光谱光强线性叠加而成

亮度

从物理角度看,亮度指光强。

如果饱和度较低,则明度的取值范围较大,反之则较小。

饱和度为0时,明度最小为0(黑色),最大为255(白色)。

饱和度为102时,明度最小为51,最大为204。

饱和度为255时,明度固定为127.5。

如果明度较高或较低,则饱和度取值范围较小;如果明度适中,则饱和度取值范围较大。

参考

水煮RGB与CMYK色彩模型—色彩与光学相关物理理论浅叙 - photograph 摄影 - 周陆军的个人网站 (zhoulujun.cn)

<think>嗯,用户想了解MATLAB中RGB三原色的使用方法和示例。首先,我需要回忆一下MATLAB处理颜色的基础知识。记得在MATLAB中,颜色通常用RGB三个分量来表示,每个分量的范围是0到1,而不是常见的0到255。比如红色是[1 0 0],绿色是[0 1 0],蓝色是[0 0 1]。这可能和用户之前接触的其他编程环境不同,需要特别说明清楚。 接下来,用户可能需要具体的代码示例。比如如何设置绘图颜色,或者如何自定义颜色。比如在plot函数里使用'Color'参数,后面跟RGB向量。例如plot(x, y, 'Color', [1 0.5 0])会显示橙色。这时候要提醒用户注意分量的范围,避免使用超过1的值,否则MATLAB会报错。 另外,用户提到的RGB三色的合成与分离,可能需要涉及图像处理的内容。比如读取图像后,分离出R、G、B三个通道,分别显示。这部分需要引用提供的参考文献[^2],说明如何用imread读取图像,然后通过(:,:,1)、(:,:,2)、(:,:,3)来获取各个通道,并用imshow展示。同时,合成部分可能需要用cat函数将三个通道合并回原图。 用户可能还会想知道如何自定义颜色,比如创建淡紫色,可以通过调整RGB值,比如[0.7 0.4 1]来实现。这时候给出具体例子会更好。同时,引用参考文献[^1]提到的自定义颜色方法,说明用户可以根据需要调整三个分量。 还要注意区分绘图颜色设置和图像处理的不同应用场景。绘图时直接在函数里指定颜色,而图像处理则需要处理三维矩阵。可能需要分开举例说明,避免混淆。 另外,用户可能遇到的问题包括颜色分量范围错误,比如输入0-255的值导致错误,这时候需要提醒他们归一化到0-1。或者在图像处理时,忘记将图像转换为double类型,导致显示问题。这些都是常见错误,应该在示例中提前说明。 最后,生成相关问题需要考虑用户可能的进一步需求,比如如何调整图像亮度(涉及RGB分量的缩放),或者与其他颜色空间的转换(如HSV),以及性能优化的问题,比如处理大图像时的技巧。这些问题可以帮助用户深入学习和应用RGB三原色的知识。</think>### MATLAB中RGB三原色的使用方法与示例 #### 一、RGB颜色基础 在MATLAB中,RGB颜色通过$[R, G, B]$三元组表示,每个分量取值范围为$0 \sim 1$(对应0\~255的归一化值)。例如: - 纯红色:$[1, 0, 0]$ - 纯绿色:$[0, 1, 0]$ - 纯蓝色:$[0, 0, 1]$ #### 二、基本应用场景 1. **绘图颜色设置** ```matlab x = 0:0.1:2*pi; y = sin(x); plot(x, y, 'Color', [0.2 0.7 0.5], 'LineWidth', 2); % 自定义青绿色 ``` 2. **图像通道分离与合成** ```matlab % 读取图像 img = imread('peppers.png'); img = im2double(img); % 转换为双精度类型 % 通道分离 R = img(:,:,1); % 红色通道 G = img(:,:,2); % 绿色通道 B = img(:,:,3); % 蓝色通道 % 通道合成 new_img = cat(3, R*0.5, G, B); % 红色通道亮度减半 imshow(new_img); ``` 3. **自定义颜色映射** ```matlab colormap([linspace(1,0,64)', zeros(64,1), linspace(0,1,64)']); % 红蓝渐变色 surf(peaks); colorbar; ``` #### 三、进阶用法示例 $$ \text{颜色混合公式:} C_{混合} = \alpha \cdot C_1 + (1-\alpha) \cdot C_2 $$ ```matlab color1 = [1 0 0]; % 红色 color2 = [0 0 1]; % 蓝色 alpha = 0.3; mixed_color = alpha*color1 + (1-alpha)*color2; % 30%红色+70%蓝色 ``` #### 四、常见问题处理 - **颜色分量越界**:强制归一化处理 ```matlab rgb = min(max(rgb_values, 0), 1); % 约束到[0,1]范围 ``` - **图像显示异常**:检查数据类型是否为double类型 ```matlab img = im2double(img); % 转换数据类型 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值