色彩基础理论:RGB与HSV色彩空间、色彩映射原理、波段组合与真彩色/假彩色
各位同学好,我是老张。今天咱们聊聊色彩理论。别急着翻白眼,我知道很多人觉得色彩是美术生的事。但做遥感可视化,不懂色彩,你做的图就是一团浆糊。我见过太多人把多光谱数据直接扔进RGB通道,出来的图跟鬼片似的。嗯,咱们今天就把这事彻底讲明白。
RGB色彩空间:最熟悉的陌生人
RGB,红绿蓝,谁都知道。但你真的懂它吗?
RGB是个加色模型。什么意思?你把红、绿、蓝三种光往一块儿叠加,越加越亮。白色就是三者全开,黑色就是全关。这跟咱们小时候画画用的颜料完全相反——颜料是减色模型,越混越脏。
在遥感里,RGB最直接的用法就是显示真彩色图像。比如Landsat 8,它的波段4是红、波段3是绿、波段2是蓝。你把这三个波段分别塞进RGB通道,出来的就是人眼看到的自然色彩。
核心公式:
真彩色 = R(波段4) + G(波段3) + B(波段2)
假彩色 = R(波段5) + G(波段4) + B(波段3) —— 近红外、红、绿
我个人习惯,拿到新数据第一件事就是先看真彩色。为什么?因为直观。植被该绿就绿,水体该蓝就蓝,建筑物该灰就灰。一眼就能判断数据质量有没有问题。
小技巧: 如果你发现真彩色图像偏色严重,先检查一下波段顺序对不对。我遇到过有人把波段1、2、3当成RGB,结果出来一片蓝紫色,折腾了半天才发现是波段顺序搞反了。
HSV色彩空间:更符合人类直觉的调色方式
RGB虽然好用,但有个致命问题——它不符合人类的调色直觉。
你想想看,你调颜色的时候,会想「我要把红色从128调到150,绿色从64调到80」吗?不会。你会想「我要让这个颜色更亮一点」、「我要让这个颜色更鲜艳一点」、「我要把色调往橙色偏一偏」。
这就是HSV存在的意义。
HSV三个分量分别是:
- H(Hue,色调):0°到360°,决定颜色种类。0°是红,120°是绿,240°是蓝。
- S(Saturation,饱和度):0到1,决定颜色鲜艳程度。0是灰色,1是纯色。
- V(Value,明度):0到1,决定颜色明暗。0是黑色,1是白色。
在遥感专题图制作中,HSV特别适合做分级渲染。比如你要把NDVI值从低到高映射成从棕到绿,用RGB调起来很痛苦,但用HSV就简单了——固定H在120°(绿色),调整S和V就行。
注意: HSV和RGB之间的转换不是线性的。你写代码的时候,别自己手算,直接用现成的库函数。我曾经手写过转换函数,结果因为精度问题,颜色边界出现了奇怪的条纹。后来老老实实用OpenCV的cvtColor,再也没出过问题。
色彩映射原理:把数据变成颜色
色彩映射,说白了就是建立一个从数据值到颜色的函数。这个函数可以是线性的,也可以是非线性的。
最常见的映射方式:
- 线性映射:数据最小值对应颜色一端,最大值对应另一端,中间均匀过渡。
- 分段映射:把数据分成几个区间,每个区间用不同颜色。比如NDVI小于0用棕色,0到0.3用黄色,0.3以上用绿色。
- 对数映射:数据跨度特别大时用,比如雷达数据,强度差好几个数量级。
我建议你记住一个原则:色彩映射的目的是突出信息,不是好看。很多人喜欢用彩虹色,觉得五彩斑斓很酷。但彩虹色有个问题——人眼对黄色和青色区域的亮度变化不敏感,容易丢失细节。
避坑指南: 我曾经做过一个土地利用分类图,用了12种颜色。结果甲方说「你这图颜色太多,看不清边界」。后来我改成用色相区分大类(比如植被用绿色系、水体用蓝色系、建筑用灰色系),再用饱和度区分小类,效果好了很多。
常用的色彩映射方案:
| 数据类型 | 推荐色带 | 说明 |
|---|---|---|
| 连续数值(如温度、高程) | 单色渐变(如白→红)或双色渐变(如蓝→白→红) | 人眼对亮度变化敏感,适合展示趋势 |
| 分类数据(如土地利用) | 色相区分(如红、绿、蓝、黄) | 不同类别用不同色相,避免混淆 |
| 植被指数(如NDVI) | 棕→黄→绿 | 符合直觉:棕色代表裸土,绿色代表茂密植被 |
波段组合与真彩色/假彩色
这是遥感可视化的核心操作。说白了,就是选择哪几个波段放到RGB三个通道里。
真彩色: 用红、绿、蓝三个可见光波段。效果跟人眼看到的一样。适合做基础底图、目视解译。
假彩色: 用至少一个非可见光波段。最常见的是用近红外代替红色通道。为什么?因为植被在近红外波段反射率极高,所以假彩色图像上植被会呈现红色,非常醒目。
常见的波段组合:
| 组合名称 | R | G | B | 用途 |
|---|---|---|---|---|
| 真彩色 | 红 | 绿 | 蓝 | 基础底图 |
| 标准假彩色 | 近红外 | 红 | 绿 | 植被监测 |
| 城市假彩色 | 短波红外1 | 近红外 | 绿 | 城市/水体区分 |
| 地质假彩色 | 短波红外2 | 短波红外1 | 红 | 矿物识别 |
为什么会这样?因为不同地物在不同波段的反射率差异很大。你想想看,水体在近红外波段几乎不反射,所以假彩色图像上水体是黑色的。植被在近红外波段反射率很高,所以是红色的。这种反差,让地物识别变得非常容易。
我的经验: 做变化检测时,我习惯用两期数据的假彩色合成。比如把前期的近红外放红色通道,后期的近红外放绿色通道。如果植被减少了,红色就会偏多;如果植被增加了,绿色就会偏多。一张图就能看出变化趋势,比算差值还直观。
下面这张图展示了本章的知识体系:
最后说一句,色彩这东西,光看理论没用。你得动手调,调多了自然就有感觉了。我刚开始做遥感图的时候,一张图能调一下午。现在嘛,看一眼数据就知道该用什么色带、什么波段组合。这就是经验。
记住:好的色彩方案,能让你的数据自己说话。坏的色彩方案,再好的数据也是白搭。
公众号:蓝海资料掘金营,微信deep3321