[ISP] 人眼中的颜色

news2025/4/16 17:36:06

相机是如何记录颜色的,又是如何被显示器还原的? 相机通过记录RGB数值然后显示器显示RGB数值来实现颜色的记录和呈现。道理是这么个道理,但实际上各厂家生产的相机对光的响应各不相同,并且不同厂家显示器对三原色的显示也天差地别,因此要实现颜色的准确的的记录和还原需要经过一套转换和统一的过程。

颜色是人的所见所感,在整个颜色的记录和呈现的过程中,体现着以人为本的思想。

 

1. 颜色是什么

一束光中由不同波长的电磁波组成(光谱),而自然界存在各种各样的光谱(定义为集合Q)。

自然界中的光谱

人的眼睛中有三种视锥细胞(L,S,M),这三种视锥细胞对不同波长光的响应各不相同。

添加图片注释,不超过 140 字(可选)

人类通过视锥细胞响应比例的差异来识别不同光谱的"颜色"(集合S)。

添加图片注释,不超过 140 字(可选)

但是不同光谱到LSM响应的映射是个多对一的过程(Q->S是满射非单射),换言之存在不同的光谱产生一样颜色的情况(异谱同色)。

添加图片注释,不超过 140 字(可选)

因此颜色可以说是人眼中LMS的一个响应组合。(想象一下三维空间中每个点是一组LMS的响应组合代表一种颜色)

 

2. 颜色的三刺激值表示

使用不同的三元色刺激人眼可以产生各种LMS响应组合(颜色),这正是异谱同色的一个应用。而且三原色的刺激值跟LMS的影响组合存在线性一一对应的关系。

CIE从颜色匹配实验得到人眼的颜色匹配函数,使用XYZ三原色可以匹配不同的单色波长光。由于人眼对颜色感知的线性特性,对复杂的光谱可以看作是不同单波长光的叠加。

添加图片注释,不超过 140 字(可选)

忽略亮度因素,得到CIE XYZ色度图,每个颜色都可以用一个xyz刺激值来表示,色度图包含了人类所有可见颜色以及其对应的刺激值。

 

因此颜也可以使用XYZ刺激值来表示。(想象一下三维空间中的每个点是XYZ的组合代表一个颜色,它跟上面的LMS空间存在线性对应关系)

3. 相机眼中的颜色

相机在不同的感光元件上放置不同的滤光片来实现sensor对光谱差异响应,因此相机眼中的颜色是一个RGB的响应组合。

相机响应曲线

相机RGB响应跟人眼的LMS响应往往存在较大的区别,为了使其跟人眼中的颜色对应起来,需要建立一个相机RGB响应值到CIE XYZ刺激值的映射;这个过程涉及到相机颜色矫正和标定过程,且存在非线性转换关系(参见卢瑟条件)。

相机RGB与色彩校正后RGB

4. 显色呈现和还原

正如秦统一文字,CIE XYZ建立了一个人类世界中颜色的一个统一表示方法。其他一些标准颜色空间的例如sRGB,Rec2020使用了不同的三原色来表示颜色,但他们的RGB三原色刺激值都可以跟XYZ进行线性转换。

显示器拿到三原色刺激值以及其对应的色彩空间后,就可以确定这是人类眼中的哪种颜色,然后使用三种不同的光去产生一个光谱,使其可以模拟对应颜色在人眼中的响应。

 

至此一束光的"颜色"从记录再到呈现给人类的过程就结束了。

杂谈:

其实人类对颜色的识别是一个大脑高度参与的过程,大脑可能会帮你自动做白平衡操作,例如黑金/蓝白裙子心理实验。

 

参考资料:

光线与数学的魔法:相机拍到的照片颜色是怎么和人眼看到的结果吻合的? - 知乎 (zhihu.com)

CIE 1931 color space - Wikipedia

色彩理论普及 | 从十六进制编码到RGB色彩呈现 - 25学堂 (25xt.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2316716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南

文章目录 解锁MySQL 8.0.41源码调试:Mac 11.6CLion 2024.3.4实战指南前期准备环境搭建详细步骤安装 CLion安装 CMake 3.30.5准备 MySQL 8.0.41 源码配置 CMake 选项构建 MySQL 项目 调试环境配置与验证配置 LLDB 调试器启动调试验证调试环境 总结与拓展 解锁MySQL 8…

关于xcode Project navigator/项目导航栏的一些说明

本文基于 xcode12.4 版本做说明 首先要明确一点,导航栏这里展示的并不是当前工程在电脑硬盘中的文件结构,它展示的是xxxxxx.xcodeproj/project.pbxproj文件(后文简.pbxproj文件)中的内容。我们在导航栏中的操作就是修改该文件,有些操作会修…

深度解析扣减系统设计:从架构到实践

背景 在当今数字化业务蓬勃发展的时代,扣减系统在众多业务场景中扮演着关键角色。无论是电商平台的库存扣减,还是金融领域的资金扣减、积分系统的积分扣减,一个高效、可靠且数据一致的扣减系统都是业务稳健运行的基石。本文将深入探讨扣减系…

视觉定位项目中可以任意修改拍照点位吗?

修改拍照点位不是那么简单 1. 背景2. 修改拍照点位意味着什么?3. 如何解决这个问题? 1. 背景 在视觉定位的项目中,会遇到这么一种情况:完成三步(9点标定,旋转中心标定,示教基准)之…

深度学习常用操作笔记

深度学习常用操作笔记 指令报错cannot import name Config from mmcvImportError: cannot import name print_log from mmcvImportError: cannot import name init_dist from mmengine.runnerWARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNon…

C++学习内存管理

1.概念的介绍 总括: 1. 栈(Stack) 存储内容: 局部变量(包括函数参数、非静态局部变量)。 函数调用的上下文信息(如返回地址、寄存器状态等)。 特点: 内存由编译器自动…

git使用。创建仓库,拉取分支,新建分支开发

文章目录 安装 git自己新建仓库,进行代码管理合作开发的流程拉去主分支代码查看本地分支的状态查看远程分支查看远程的仓库信息本地分支切换切换并创建分支提交代码 made by NJITZX git 是一个版本控制工具,真正开发项目中是多个人开发一个项目的&#…

itsdangerous加解密源码分析|BUG汇总

这是我这两天的思考 早知道密码学的课就不旷那么多了 纯个人见解 如需转载,标记出处 目录 一、官网介绍 二、事例代码 源码分析: 加密函数dump源码使用的函数如下: 解密 ​编辑 ​编辑 关于签名: 为什么这个数字签名没有…

不像人做的题————十四届蓝桥杯省赛真题解析(上)A,B,C,D题解析

题目A:日期统计 思路分析: 本题的题目比较繁琐,我们采用暴力加DFS剪枝的方式去做,我们在DFS中按照8位日期的每一个位的要求进行初步剪枝找出所有的八位子串,但是还是会存在19月的情况,为此还需要在CHECK函数…

JavaScript 中 call 和 apply 的用法与区别

文章目录 前言一、 call 方法1.1 基本用法1.2 传递多个参数 二、apply 方法2.1 基本用法2.2 传递数组参数 三、call 和 apply 的区别四、实际应用场景4.1 借用方法4.2 继承与构造函数 五、总结 前言 在 JavaScript 中,call 和 apply 是两个非常重要的函数方法&…

面试系列|蚂蚁金服技术面【1】

哈喽,大家好!今天分享一下蚂蚁金服的 Java 后端开发岗位真实社招面经,复盘面试过程中踩过的坑,整理面试过程中提到的知识点,希望能给正在准备面试的你一些参考和启发,希望对你有帮助,愿你能够获…

使用傅里叶变换测量声卡的频率失真

文章目录 一、说明二、关于声卡的技术详述三、实验代码获取四、结论 一、说明 假如我希望使用我的声卡来模拟软件无线电,利用声音而不是射频信号。我的声卡能胜任这项任务吗?本文将研究一种技术来找出答案。另外,需要了解音频技术的读者也可…

【HTML5】01-HTML摆放内容

本文介绍HTML5摆放标签的知识点。 目录 1. HTML概念 2. HTML骨架 3. 标签的关系 4. 标题标签 5. 段落标签 6. 换行和水平线 7. 文本格式化标签 8. 图像标签 图像 - 属性 9. 路径 相对路径 绝对路径 10. 超链接标签 11. 音频标签 12. 视频标签 1. HTML概念 HTM…

内存管理:

我们今天来学习一下内存管理: 1. 内存分布: 我们先来看一下我们下面的图片: 这个就是我们的内存,我们的内存分为栈区,堆区,静态区,常量区; 我们的函数栈帧开辟消耗的内存就是我们…

设计模式使用Java案例

代码设计要有可维护性,可复用性,可扩展性,灵活性,所有要使用设计模式进行灵活设计代码 创建型 简单工厂模式(Simple Factory) 简单工厂模式(Simple Factory Pattern)是一种创建型…

模运算的艺术:从基础到高阶的算法竞赛应用

在算法竞赛中,模运算(取模运算)是一个非常重要的概念,尤其在处理大数、防止溢出、以及解决与周期性相关的问题时。C 中的模运算使用 % 运算符,但它的行为和使用场景需要特别注意。 1. 模运算的基本概念 模运算是指求一…

ST电机库电流采样 三电阻单ADC

一、概述 下图是三电阻采样的电路结构 其中流过三相系统的电流I1、I2、I3遵循以下关系: 因此,为了重建流过普通三相负载的电流,在我们可以用以上公式计算的情况下,只需要对三相中的两相进行采样即可。 STM32的ADC可以很灵活的配置成同步采集两路ADC数据,…

现代密码学 | 具有保密和认证功能的安全方案

1.案例背景 1.1 2023年6月,微软云电子邮件泄露 事件描述: 2023年6月,属于多家美国政府机构的微软云电子邮件账户遭到非法入侵,其中包括了多位高级政府官员的电子邮件。据报道,美国国务院的10个邮件账户中共有6万封电…

一款基于Python的从常规文档里提取图片的简单工具开发方案

一款基于Python的从常规文档里提取图片的简单工具开发方案 1. 环境准备 安装必需库 pip install python-docx PyMuPDF openpyxl beautifulsoup4 pillow pip install pdfplumber # PDF解析备用方案 pip install tk # Python自带,无需安装工具选择 开发环…

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3+ 2025 版免费体验方案

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3 2025 版免费体验方案 前言 JetBrains IDE 是许多开发者的主力工具,但从 2024.02 版本起,JetBrains 调整了试用政策,新用户不再享有默认的 30 天免费试用…