cs131 第二讲 颜色与线性代数

by:斯坦福大学计算机科学系

github: https://github.com/zhaoxiongjun/CS131_notes_zh-CN (包含中英文版课件及相关课程视频)


1 色彩物理学

1.1 什么是颜色

颜色是环境中物理光与我们视觉系统之间相互作用的结果。
当我们观察一个物体和光时,我们的视觉体验是心理属性,而不是这些物体或光的物理属性。

1.2 颜色和光线

白光在可见光谱的所有波长中由几乎相等的能量组成

1.3 电磁频谱

光由不同波长的波组成。可见光的光谱范围为400nm~700nm,人类对波长在这个频谱中间的光最敏感。人类只能看到可见光,因为太阳发出的黄光比任何其他颜色都要多 而且和它的温度有关。

1.4 可见光

普朗克黑体辐射定律估算了发射的电磁辐射的波长,一颗恒星,根据其表面温度。例如,由于太阳表面约为5800K,太阳发出的光的峰值位于可见光区域。

1.5 光的物理学

任何光源都可以通过其光谱来在物理上描述(即在单位时间内在每个波长400-700nm发射释放的能量)。
物体表面具有反射光谱:反射光聚焦在可见光光谱的某一侧。例如,香蕉主要反射黄光,西红柿主要反射红光。

1.6 光与表面的相互作用

反射颜色是光源光谱与表面反射率相互作用的结果。通常,定义单位用“每单位波长”表示,术语假设为“光谱”(即指光谱,而不是单一波长)。光度被量化为:光度*反射= ColorSignal

2 人类对颜色的编码

如前一节所述,颜色不应该是光的物理属性 - 而是光与人类视觉系统之间的相互作用产生颜色的现象。

2.1 视杆细胞和视锥细胞

当我们观察一个场景时,光首先通过瞳孔进入我们的眼睛,然后到达视网膜。视网膜主要由两种类型的光敏细胞组成:视杆细胞和视锥细胞。是根据它们在显微镜下的外观命名的。杆状体在这两者中更多,并且是高度敏感的,因此非常适合在弱光条件下检测物体。但是,他们不编码任何颜色信息。另一方面,视锥细胞数量较少且灵敏度较低,但它们在区分高光条件下的物体很有用。它们是怎样感知颜色,将在下面进行讨论。

2.2 视锥细胞和颜色

杆状体和锥体之间的关键区别在于后者有三种不同的类型,每种不同类型的特征对不同波长的光有独特的响应曲线。每条响应曲线的峰值处于一个特定的波长,即440,530和560nm,与蓝色,绿色,和红色对齐。然而,杆状体和锥体都起到过滤器的作用,其输出可以解释为每个响应曲线乘以光谱,在所有波长上积分。虽然由三个数字编码的信息足以满足大多数任务,但是一些信息在视网膜从光谱到电脉冲的压缩过程中丢失。这意味着一些光谱的子集将被错误地认为是相同的 - 这种光谱被称为metamers(同分异构体?)

2.3 颜色匹配

因为我们对设计一个提供一致的视觉体验的系统很有兴趣,它有助于理解最小的颜色,可以结合起来创建任何经验可感知的颜色。
Wandell的视觉基础实验(Sinauer Assoc。,1995)表明大多数人能够通过调整三种不同颜色的实验灯来重建给定测试灯的颜色。唯一的条件是每三个灯必须是原色。此外,实验表明,对于相同的测试光和三原色,大多数人选择相似的权重(即这三种颜色的比重),当然色盲是一个例外。最后,这个实验验证了三原色理论 ——三个数字足以编码颜色的命题 。这可以追溯到18世纪托马斯-杨的著作。

3 颜色空间

3.1 定义

颜色空间,也称为颜色模型(或颜色系统),是一种抽象的数学模型将颜色范围描述为数字元组,通常为3或4个值的颜色分量(例如RGB)。颜色空间可以是任意的或数学上结构化的。大多数颜色模型映射到绝对的,可理解的颜色解释系统。

3.2 线性颜色空间

由三原色的选择定义,颜色的坐标由原色的权值决定与之匹配

  • RGB空间
    原色是单色灯(对于显示器,它们对应于三个颜色)
    某些波长的光需要减色法匹配

  • CIE XYZ色彩空间

    图1:混合两个灯产生的颜色在颜色空间中沿直线排列。混合三个灯产生的颜色位于它们在颜色空间定义的三角形内

    图2:RBG原色和相应的匹配函数的表示。匹配函数是波处匹配单色测试颜色所需的原色数量 - 长度显示在水平刻度上。资料来源: https://en.wikipedia.org/wiki/CIE_1931_color_space
    (-颜色是虚构的,但匹配函数处处为正
    -Y参数对应于颜色的亮度或强度
    -通过线性变换与RGB空间相关,遵循Grassmann定律)

    图3:来源:https://en.wikipedia.org/wiki/CIE_1931_color_space

3.3 非线性颜色空间:HSV

  • 旨在反映更传统和直观的混色模型(例如油漆混合)
  • 基于人类视觉中颜色的组织和概念化
  • 尺寸为:色调,饱和度和值(强度)

    图4:来源:[https//en.wikipedia.org/wiki/HSL_and_HSV]
    (https://en.wikipedia.org/wiki/HSL_and_HSV)

4 白平衡

4.1 定义

白平衡是对感器接收的图像数据进行调整,以正确的渲染处理中性色(白色,灰色等)。此调整由数码相机自动执行(自定义设置为不同的光);胶片相机提供多种不同的滤镜和胶片类型,为不同的拍摄条件。

4.2 白平衡的重要性

由于一些原因,未经调整的图像具有不自然的颜色“投射”,使得白平衡很重要:

  • 1.相机或胶卷中的传感器与我们的眼睛不同
  • 2.不同的显示媒体以不同方式渲染图像,这个因素必须考虑
  • 3.拍摄图像时的视觉条件通常与观看图像的条件不同
    图5:两张照片的示例,一张是不平衡的,一张是不正确的白平衡。来源:
    http://www.cambridgeincolour.com/tutorials/white-balance.html

4.3 Von Kries方法

Von Kries的白平衡方法是将每个通道缩放一个“增益因子”以匹配灰色中性物体的外观。在实践中,实现这一目标的最佳方法是灰卡方法:保持中性(灰色或白色)并确定每个通道的值。如果我们发现卡具有RGB值rw,gw,bw,那么我们将图像的每个通道缩放1/rw ,1/gw ,1/bw 。

4.4 其他方法

如果没有灰卡,我们需要猜测哪些像素对应于白色物体。几种方法试图实现这一目标,包括统计和机器学习模型(超越了本课程的范围)灰色世界假设在这个模型下,我们假设照片中的平均像素值(rave,gave,bave)是灰色的,并将图像像素缩放1 [RAVE ,1gave ,和1bave 最明亮的像素假设适用于非饱和图像并假设图像高光通常有光源的颜色(通常是白色)。
因此,它可以纠正白平衡加权每个通道与最亮像素的值成反比色域映射图像的色域是图像中显示的所有像素颜色的集合(in数学术语,这是“凸包”和所有可能颜色组合的子集。我们然后可以对图像应用转换,将图像的色域映射到的该色域白光下的“标准”图像。

*4.3&4.4建议看原文理解会更好 *

4.5 计算机视觉中的其他颜色用途

颜色在皮肤检测,裸检测和图像分割等方面应用起着至关重要的作用

5 线性代数入门:向量和矩阵

定义向量和矩阵只是代表某些东西的有序数字的集合:空间运动,比例因子,像素亮度等

5.1 向量

5.2 矩阵

5.3 基本的矩阵运算


线性代数部分,格式不便表示
这里推荐麻省理工大学的公开课:
麻省理工公开课:线性代数

0 范数、1 范数、2 范数有什么区别?

cs131 第二讲 颜色与线性代数相关推荐

  1. CS131-Lecture2:颜色与线性代数

    cs131 第二讲 颜色与线性代数 by:斯坦福大学计算机科学系 github: https://github.com/zhaoxiongjun/CS131_notes_zh-CN (包含中英文版课件 ...

  2. 第二讲:认识颜色符号或绘图函数

    第二讲:认识颜色符号或绘图函数 我们所看到的指标是以线为基础的.不论是均线, K线,或在线与点之间的填充,又都离不开颜色.正是有了五颜六色才使得图形丰富多采,便于区分,或者更具立体感.本讲就是告诉大家 ...

  3. 线性代数--第二讲:矩阵消元

    线性代数--第二讲:矩阵消元 1,矩阵消元 1.1,方程组求解 1.2,增广矩阵 2,矩阵乘法 2.1,矩阵*向量 = 矩阵列的线性组合 2.2,向量*矩阵 = 矩阵行的线性组合 2.3,总结 3,单 ...

  4. 2022张宇考研基础30讲 线性代数 第二讲 矩阵

    文章目录 第二讲 矩阵 向量与向量组的线性相关性 向量定义 向量的内积与正交 矩阵的秩 矩阵的基本运算 矩阵乘法 施密特标准正交化 矩阵的幂 方阵乘积的行列式 矩阵的基本运算 矩阵的逆 伴随矩阵 三个 ...

  5. 第二讲:Android系统构架分析和应用程序目录结构分析

    2019独角兽企业重金招聘Python工程师标准>>> 本讲内容: Android系统构架简介 Android应用程序结构分析 点这里下载:Android学习指南第二讲源代码 一.A ...

  6. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学 ...

  7. 计算机基础98均9,第三章 计算机基础 Windows98 (第二讲).ppt

    <第三章 计算机基础 Windows98 (第二讲).ppt>由会员分享,可在线阅读,更多相关<第三章 计算机基础 Windows98 (第二讲).ppt(26页珍藏版)>请在 ...

  8. python语言的特点强制可读_python程序语言设计第二讲(笔记)

    Python语言程序设计第二讲 1.复习回顾 1.1保留字 1.2温度转换 #宋宇婕宝贝开始编写的第一个程序,温度转换,我来了 TempStr=input("一阵给老子输入带有符号的温度值, ...

  9. 16位汇编语言第二讲系统调用原理,以及各个寄存器详解

    16位汇编语言第二讲系统调用原理,以及各个寄存器详解 昨天已将简单的写了一下汇编代码,并且执行了第一个显示到屏幕的helloworld 问题? helloworld怎么显示出来了. 一丶显卡,显存的概 ...

最新文章

  1. Zoom Capability
  2. AS插件-Android Parcelable code generator.
  3. Mac上IDA报错/:Permission denied Please specify another file path for the database
  4. 图解PROFINET——PROFINET IO设备类型
  5. vsCode 配置 html 文件警告
  6. 支付宝芝麻信用免押金领取POS机、信用免押租赁系统开发
  7. python输入整数_限制输入整数的5种情况(学数学学Python编程)
  8. Unity 抗锯齿方案梳理
  9. 《剑来》语句摘录(四)
  10. win10外接屏显示分辨率不匹配问题解决
  11. springboot借助sftp将文件上传到远端的nginx服务器中,然后将文件路径存进数据库
  12. 银河麒麟桌面V10SP1安装nosqlbooster 可视化工具
  13. 电驴连接服务器显示无响应,请问使用电驴时,服务器无响应,怎么解决?
  14. 海贼王(pirate)(LCA)
  15. 苹果慌了,iPhone11全系大降价抢市场
  16. 国内下载android源码
  17. 武汉新时标文化传媒有限公司抖音小店公告标题怎么写?
  18. 冒泡排序 python内置_除了冒泡排序,你知道Python内建的排序算法吗?
  19. Ubuntu16.04下安装MATLAB 2016b!完美运行
  20. 使用Unity制作游戏AI

热门文章

  1. 添加网站外链的10个小技巧-成都网站建设
  2. 2022年高教社杯全国大学生数学建模国赛B题思路详解
  3. 前端使用js实现新年(元旦)倒计时
  4. android应用开发_2020年排名前五的Android应用开发公司
  5. 远程控制任我行的使用
  6. pyqt5 桌面摸鱼工具 一行小鱼
  7. 第二届国信蓝点模拟试题
  8. anaconda安装NLTK详细说明
  9. 自己创作的一个简单的蠕虫病毒
  10. 竞猜类游戏Fastwin遭黑客攻击背后:Block.one官方悄然做了重大更新