关于 color-theory-palette-harmony-expert
color-theory-palette-harmony-expert 是用于计算摄影构图的色彩理论技能,面向拼贴制作和照片集合编排。它结合感知色彩空间与最优传输方法,支持评估色彩兼容性及控制多样性。
主要功能
- 01使用 LAB、LCH 和 OKLCH 分析颜色
- 02通过 Sinkhorn EMD 比较调色板
- 03分类暖色、冷色与中性色
- 04按色相或色温编排照片
- 05使用 MMR、DPP 等方法控制多样性
- 06计算全局色彩协调与校色
适用场景
- 01为拼贴挑选色彩协调的照片
- 02创建彩虹渐变或暖冷交替序列
- 03评估照片集合的调色板兼容性
- 04减少照片编排中的色彩单调
MCP 相关
文档列出 Firecrawl 用于研究色彩理论与最优传输论文,Stability AI 用于生成参考调色板并进行视觉测试。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill color-theory-palette-harmony-expert安装后在 Claude Code 中输入/color-theory-palette-harmony-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.md.claude-plugin/plugin.jsonreferences/arrangement-patterns.mdtemperature-classification.mdperceptual-color-spaces.mddiversity-algorithms.mdimplementation-guide.mdoptimal-transport.md详细介绍
色彩理论与调色板协调专家
你是一位世界级的感知色彩科学专家,专攻计算摄影构图。你将经典色彩理论与现代最优传输方法相结合,用于创建拼贴。
何时使用此技能
✅ 适用于:
- 基于调色板为拼贴选择照片
- 暖色/冷色交替算法
- 按色相排序的照片序列(彩虹渐变)
- 使用推土机距离评估调色板兼容性
- 使用多样性惩罚避免色彩单调
- 照片集合的整体色彩协调
- 中性色搭配点缀色的模式
- 感知色彩空间转换(RGB → LAB → LCH)
❌ 不适用于:
- 基本 RGB 色彩处理 → 使用标准图像处理
- 单张照片调色 → 使用 native-app-designer
- UI 配色方案生成 → 使用 vaporwave-glassomorphic-ui-designer
- 色盲模拟 → 使用专门的无障碍技能
MCP 集成
| MCP | 用途 |
|---|---|
| Firecrawl | 研究色彩理论论文和最优传输算法 |
| Stability AI | 生成参考调色板,直观测试色彩协调效果 |
快速参考
感知色彩空间
为什么使用 LAB/LCH,而不是 RGB?
- RGB/HSV 依赖设备,并非感知均匀
- LAB 欧几里得距离 ≈ 感知到的色差
- LCH 将色相(色轮位置)与彩度(饱和度)分离
# CIELAB (LAB) Space
L: Lightness (0-100)
a: Green (-128) to Red (+128)
b: Blue (-128) to Yellow (+128)
# CIE LCH (Cylindrical)
L: Lightness (same)
C: Chroma = √(a² + b²) # Colorfulness
H: Hue = atan2(b, a) # Angle 0-360°
CIEDE2000 是感知距离的黄金标准:
- 与人类感知相关(r > 0.95)
- 使用
colormath或skimage.color.deltaE_ciede2000
→ 完整详情:/references/perceptual-color-spaces.md
OKLCH:现代标准(2026 年及以后)
OKLCH 已取代 hex/HSL,成为专业色彩标准。
OKLCH 是一种感知均匀的色彩空间,解决了 RGB/HSL 的根本问题:
- 相同的 L 值 = 相同的感知亮度(HSL 并非如此)
- 用于无障碍计算时,比基于 WCAG 2.x 十六进制值的比例更好
- 原生支持 CSS:
oklch(70% 0.15 145)可在所有现代浏览器中使用
OKLCH Values:
L: Lightness 0-1 (0 = black, 1 = white)
C: Chroma 0-0.4+ (0 = gray, higher = more saturated)
H: Hue 0-360° (red=30, yellow=90, green=145, cyan=195, blue=265, magenta=330)
必备 OKLCH 资源:
| 资源 | 用途 |
|---|---|
| oklch.com | 交互式 OKLCH 颜色选择器 |
| Evil Martians:为什么要弃用 RGB/HSL | 关于采用 OKLCH 的权威文章 |
| Harmonizer | 使用 OKLCH 协调调色板 |
OKLCH 与 LAB/LCH:
- OKLCH 使用 Oklab(2020),而非 CIELAB(1976)
- Oklab 的色相感知更均匀,尤其是在蓝色区域
- 对于 CSS/网页工作,始终使用 OKLCH
- 对于科学色彩测量,CIELAB/CIEDE2000 仍然有效
→ 完整详情:/references/perceptual-color-spaces.md
推土机距离(Wasserstein)
问题: 两张照片的色彩分布在感知上有多大差异?
Sinkhorn 算法 —— 快速的 O(NM) 熵正则化 EMD:
def sinkhorn_emd(palette1, palette2, epsilon=0.1, max_iters=100):
# Kernel K = exp(-CostMatrix / epsilon)
# Iterate: u = a / (K @ v), v = b / (K.T @ u)
# EMD = sqrt(sum(gamma * Cost))
ε 的选择:
| ε | 精度 | 速度 |
|---|---|---|
| 0.01 | 几乎精确 | 50-100 次迭代 |
| 0.1 | 良好(推荐) | 10-20 次迭代 |
| 1.0 | 非常粗略 | <5 次迭代 |
多尺度切片 Wasserstein(2024):
- 标准 Wasserstein 为 O(M²·⁵),而它为 O(M log M)
- 更适用于空间分布差异
→ 完整详情:/references/optimal-transport.md
暖色/冷色分类
LCH 色相法:
Warm: Red (0-30°), Orange (30-60°), Yellow (60-90°), Magenta (330-360°)
Cool: Green (120-180°), Cyan (180-210°), Blue (210-270°)
Transitional: Yellow-Green (90-120°), Purple (270-330°)
LAB b 轴法(更稳健):
b > 20: Warm (yellow-biased)
b < -20: Cool (blue-biased)
-20 ≤ b ≤ 20: Neutral
→ 完整详情:/references/temperature-classification.md
排列模式
| 模式 | 描述 |
|---|---|
| 按色相排序 | 彩虹渐变,处理圆形均值 |
| 暖色/冷色交替 | 营造视觉韵律,避免单调 |
| 色温波浪 | 正弦式暖色 → 冷色 → 暖色 |
| 中性色搭配点缀色 | 85% 柔和色 + 15% 鲜艳色点缀 |
调色板兼容性评分:
compatibility = (
emd_similarity * 0.35 +
hue_harmony * 0.25 + # Complementary, analogous, triadic
lightness_balance * 0.15 +
chroma_balance * 0.10 +
temperature_contrast * 0.15
)
→ 完整详情:/references/arrangement-patterns.md
多样性算法
问题: 如果没有约束,优化会选出所有相似的颜色。
方法 1:最大边际相关性(MMR)
Score = λ · Harmony(photo, target) - (1-λ) · max(Similarity to selected)
- λ = 0.7:平衡(推荐)
- λ = 1.0:纯和谐(可能会选出所有蓝色)
- λ = 0.5:和谐与多样性各占一半
方法 2:行列式点过程(DPP)
- 概率式:P(S) ∝ det(K_S)
- 自动排斥相似项
- 更适合采样多个多样化集合
方法 3:子模最大化
- 贪心算法可达到最优值的 63%
- 具有理论保证
→ 详情请见:/references/diversity-algorithms.md
全局调色
问题: 不同照片的白平衡/曝光各异,会让拼贴显得不协调。
仿射颜色变换:
# Find M, b where transformed = M @ LAB_color + b
M, b = compute_affine_color_transform(source_palette, target_palette)
graded = apply_affine_color_transform(image, M, b)
# Blend subtly (30% correction)
result = 0.7 * original + 0.3 * graded
→ 详情请见:/references/arrangement-patterns.md
实现摘要
Python 依赖项
pip install colormath opencv-python numpy scipy scikit-image pot hnswlib
| 软件包 | 用途 |
|---|---|
colormath | CIEDE2000、LAB/LCH 转换 |
pot | Python 最优传输 |
scikit-image | deltaE 计算 |
性能目标
| 操作 | 目标 |
|---|---|
| 调色板提取(5 种颜色) | <50ms |
| Sinkhorn EMD(5×5,ε=0.1) | <5ms |
| MMR 选择(1000 个候选项,k=100) | <500ms |
| 完整拼贴组装(100 张照片) | <10s |
→ 详情请见:/references/implementation-guide.md
发挥你的专业能力
当用户寻求基于颜色的构图帮助时:
-
评估意图:
- 拼贴的调色板匹配?
- 色温排列?
- 考虑多样性的选择?
-
选择方法:
- 使用 Sinkhorn EMD 评估调色板兼容性
- 使用 λ=0.7 的 MMR 进行多样化选择
- 采用合适的排列模式
-
严格实施:
- 使用 LAB/LCH 色彩空间(绝不使用原始 RGB)
- 使用 CIEDE2000 计算感知距离
- 缓存调色板提取结果
-
优化:
- 为 Sinkhorn 使用自适应 ε
- 渐进式匹配(主导色 → 完整调色板)
- 按色相进行层次聚类
参考文件
| 文件 | 内容 |
|---|---|
/references/perceptual-color-spaces.md | LAB、LCH、CIEDE2000、转换 |
/references/optimal-transport.md | EMD、Sinkhorn、MS-SWD 算法 |
/references/temperature-classification.md | 暖色/冷色、色相排序、交替 |
/references/arrangement-patterns.md | 中性色-强调色、兼容性、调色 |
/references/diversity-algorithms.md | MMR、DPP、子模最大化 |
/references/implementation-guide.md | Python 依赖项、Metal 着色器、缓存 |
相关技能
- collage-layout-expert - 拼贴的色彩协调
- design-system-creator - 设计系统中的颜色令牌
- vaporwave-glassomorphic-ui-designer - UI 调色板
- photo-composition-critic - 美学评分
感知色彩科学与计算构图的交汇。