光学基础知识:白光、颜色混合、RGB、色彩空间
1665年,牛顿(Isaac Newton)进行了太阳光实验,让太阳光通过窗板的小圆孔照射在玻璃三角棱镜上,光束在棱镜中折射后,扩散为一个连续的彩虹颜色带,牛顿称之为光谱,表示连续的可见光谱。而可见光谱只是所有电磁波谱中的一小部分。
![]() |
![]() |
牛顿认为白光(太阳光)使复杂的,由无数种不同的光线混合,各种光线在玻璃中受到不同程度的折射。棱镜没有改变白光而只是将它分解为简单的组成部分,把这些组成部分混合,能够重新恢复原来的白色。利用第二块棱镜可以将扩散的光再次合成为白光。
在重新合成之前,通过屏蔽部分光谱,可以产生各种颜色。Young在1802年的实验表明:如果在红、绿、蓝区域选择部分光谱,这三者适当的混合可以再现白光。
后来,Helmholtz成功地定量分析了这种现象。混合物中红、绿、蓝比例的变化可以产生多种颜色,几乎可以产生任何颜色,红色、绿色、蓝色三者等量的混合可以再现白色。
所以:红、绿、蓝这三种颜色就称为“三原色”(RGB)。
|
红、绿、蓝光的混合结果暗示了人眼也拥有三种颜色的灵敏读,分别对应于红、绿、蓝。这种三灵敏度理论称之为Young-Helmholtz颜色视觉理论。它可以对三原色合成颜色作出非常简单的解释。
三原色理论被广泛应用于各种涉及视觉的场合。
补色的概念:从白色中减去颜色A所形成的颜色,称之为颜色A的补色 (complementary color)。
补色的形成:(白色减掉三原色,就是黑色)
|
|
|
|
|
|
|
|
补色的特点:当使用某个补色滤镜时,该补色对应的原色会被过滤掉:
![]() |
原色以及所对应补色的名称:
|
颜色再现有两种方式:
1、原色加法:三原色全部参与叠加形成白色,任意其中两种原色相加形成不参与合成的颜色的补色。
|
|
|
|
|
|
|
|
这是合成的示意图:
|
加色法 |
2、原色减法:三补色全部参与叠加形成黑色,任意其中两种补色相加形成不参与合成的颜色的原色。
|
|
|
|
|
|
|
|
这是合成的示意图:
|
减色法 |
原色加法比较简单,由原色叠加而形成其他颜色,但是应用较少;而原色减法是从白色中减掉相应原色而形成其他颜色,就是用补色来叠加形成其他颜色,应用的场合比较多。
色彩空间
随着数字摄影的兴起,计算机处理图象已经成为主流,但是现在多数的计算机设备无法完全再现人眼可辨认的色彩。一般的数字影像都是采用了sRGB色彩空间,处理范围比较宽的是Adobe RGB。下面是国际照明委员会(CIE)颁布的CIE1993-RGB系统的色度图:
![]() |
光学基础知识:白光、颜色混合、RGB、色彩空间的更多相关文章
- 视频图像处理基础知识5(RGB与Ycbcr相互转换公式 )【转】
转自:http://blog.csdn.net/Times_poem/article/details/51471438 版权声明:本文为博主原创文章,未经博主允许不得转载. 需求说明:视频处理算法基本 ...
- 【STM32H7教程】第57章 STM32H7硬件JPEG编解码基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第57章 STM32H7硬件JPEG编解码基础知识 ...
- 【STM32H7教程】第55章 STM32H7的图形加速器DMA2D的基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第55章 STM32H7的图形加速器DMA2D的基 ...
- 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- TCP/IP基础知识
TCP/IP基础知识 网络 TCP/IP 引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP ...
- MOGRE学习笔记(2) - MOGRE基础知识总结
前一篇配置了MOGRE的运行环境,这里记录一些MOGRE基础知识,仅仅是最基础的一些东西.由于本人接触ogre的时间比较短,对于很多知识都是一知半解,所以理解起来不免会有一些错误,本人也希望自己在对o ...
- css+div网页设计(一)--基础知识
css是网页制作不可缺少的部分,我会用三篇博客为大家展示css的基本用法. 关于css+div的整体结构图总结如下: 本篇博客主要介绍css的基础知识. 一.css概念; css(级联样式表):它是一 ...
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- android图形基础知识
Android核心分析(23)-----Andoird GDI之基本原理及其总体框架 2010-06-13 22:49 18223人阅读 评论(18) 收藏 举报 AndroidGDI基本框架 在An ...
随机推荐
- [LeetCode]题解(python):144-Binary Tree Preorder Traversal
题目来源: https://leetcode.com/problems/binary-tree-preorder-traversal/ 题意分析: 前序遍历一棵树,递归的方法很简单.那么非递归的方法呢 ...
- 依赖注入(DI)和控制反转(IOC)
依赖注入(DI)和控制反转(IOC) 0X1 什么是依赖注入 依赖注入(Dependency Injection),是这样一个过程:某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只 ...
- Snort
https://www.snort.org/ http://blog.csdn.net/htttw/article/details/7521053 http://www.ibm.com/develop ...
- 一、ThinkPHP的介绍
一.ThinkPHP的介绍 //了解 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责前台页面显示 编写html代码 C - Controller 控 ...
- VC中使用GetModuleFileName获取应用程序路径
.\\与API函数GetModuleFileName获取应用程序目录有何不一样? 采用.\\也能获得应用程序目录,采用GetModuleFileName也能获得,二者有何不同? 一样!一个是相对路 ...
- 关于cvScalar的那些事
CvScalar 可存放在1-,2-,3-,4-TUPLE类型的捆绑数据的容器 该函数包含4个浮点成员,可以用来表示B(Blue),G(Green),R(Red),Alpha(表示图像的透明度) ty ...
- tomcat的JK和JK2
如今又開始配置JK2,想将Tomcat和apache,但Tomcat上已经不支持对于JK2的开发了,详情请看: Apache-Tomcat mod_jk2 aka JK2 15 November - ...
- openstack 源码分析
Nova对于底层Hypervisor(如KVM/QEMU等)的调用与管理主要通过LibvirtDriver类,nova/virt/libvirt/driver.py Libvirt对Hyperviso ...
- curl之post提交xml
直接上代码: /** * 以post方式提交xml到对应的接口url * * @param string $xml 需要post的xml数据 * @param string $url url * @p ...
- 关于new Function使用以及将json格式字符串转化为json对象方法介绍
一直对Function()一知半解,今日就Function()的使用做一下总结 一.函数实际是功能完整的对象,用Fucntion()直接创建函数. 语法规则: var 函数名 = new Fun ...
















