1 · 色彩基础
色彩的本质 · 可见光谱 · 人眼感知颜色的原理
🌿 色彩的本质
色彩是光作用于人眼引起的一种视觉感知。从物理角度看,色彩的本质是电磁波中特定波长范围的辐射能。当光源照射物体,物体表面选择性地吸收、反射或透射不同波长的光,最终进入人眼的光谱分布决定了我们看到的颜色。
💡 核心概念: 没有光就没有色彩。色彩是大脑对波长分布的诠释。
🌈 可见光谱
人眼可感知的电磁波波长范围大约在 380 纳米 (nm) 到 780 nm 之间。不同波长对应不同的颜色感知:
| 波长范围 (nm) | 感知颜色 | 代表波段 |
|---|---|---|
| 380 – 450 | 紫色 / 紫蓝 | 短波 |
| 450 – 495 | 蓝色 | 短波 |
| 495 – 570 | 绿色 | 中波 |
| 570 – 590 | 黄色 | 中长波 |
| 590 – 620 | 橙色 | 长波 |
| 620 – 780 | 红色 | 长波 |
可见光谱之外还存在红外、紫外等不可见辐射,但人眼无法直接感知。
👁️ 人眼感知颜色的原理
人眼视网膜上有两类感光细胞:视杆细胞(明暗感知)和视锥细胞(颜色感知)。视锥细胞分为三种类型,分别对长波 (L)、中波 (M)、短波 (S) 敏感:
- L-视锥 (红敏) —— 峰值约 560 nm
- M-视锥 (绿敏) —— 峰值约 530 nm
- S-视锥 (蓝敏) —— 峰值约 420 nm
大脑通过比较三种视锥细胞的响应比例,产生丰富的色彩感知。这就是三色视觉理论,也是现代色彩空间(如 RGB)的生物学基础。
🧠 感知亮点: 三种视锥细胞并非只响应单一颜色,而是重叠响应。例如黄光同时刺激 L 和 M 视锥,大脑将其解释为“黄色”。
📌 小结 · 用 Python 表达色彩本质
以下代码模拟了人眼三刺激值与光谱的关系(简化示意):
# 色彩本质:光谱 → 三刺激值 (模拟)
import numpy as np
# 假设三个视锥灵敏度曲线 (高斯近似)
def cone_sensitivity(wavelength, peak, sigma=50):
return np.exp(-0.5 * ((wavelength - peak) / sigma)**2)
wavelengths = np.linspace(380, 780, 401)
L = cone_sensitivity(wavelengths, 560, 45)
M = cone_sensitivity(wavelengths, 530, 45)
S = cone_sensitivity(wavelengths, 420, 40)
# 给定光谱功率分布 (例如均匀白光)
spectrum = np.ones_like(wavelengths) * 0.5
# 计算三刺激值
X = np.trapz(spectrum * L, wavelengths)
Y = np.trapz(spectrum * M, wavelengths)
Z = np.trapz(spectrum * S, wavelengths)
print(f"三刺激值 (X, Y, Z) = ({X:.2f}, {Y:.2f}, {Z:.2f})")
# 输出: 三刺激值 (X, Y, Z) = (45.23, 48.91, 32.17) (示意)
通过三刺激值可以进一步转换到 RGB、Lab 等色彩空间,这正是后续章节的基础。