我正在尝试使用 matlab 从卫星数据创建一个真彩色 RBG 图像,但我不知道该怎么做。
假彩色RGB图像很简单,只要使用正确的红绿蓝通道就可以了
RGB(:,:,1)=(ref16)'; %red - reflectance 1.6mic
RGB(:,:,2)=(ref06)'; %green - reflectance 600nm
RGB(:,:,3)=(ref05)'; %blue - reflectance 500nm
image(RGB)
在这种情况下,我使用的是卫星频道的反射率,范围从 0 到 1,所以我不需要修改原始数据
但是当我尝试绘制真彩色图像时遇到了很多麻烦。
根据文献,以下配置文件应该从 MERIS Level-1b 数据产品(我正在使用的数据)中产生良好的 RGB 图像。红色、绿色和蓝色分量的线性组合基于 CIE 1931 颜色空间的颜色匹配函数。
RGB(:,:,1)=log(1.0+0.35*radiance_2+0.60*radiance_5+radiance_6+0.13*radiance_7)'
RGB(:,:,2)=log(1.0+0.21*radiance_3+0.50*radiance_4+radiance_5+0.38*radiance_6)'
RGB(:,:,3)=log(1.0+0.21*radiance_1+1.75*radiance_2+0.47*radiance_3+0.16*radiance_4)'
Radiance 是从 0 到 400 的真实值(应用了比例因子),所以我想我必须标准化 RGB 数组(0-1 或 0-255)来创建图像。
但是自己进行标准化或仅使用 im2uint8 不会产生正确的图像。
很可能我做错了一切,因为我不熟悉颜色配置文件。matlab 中有没有一种方法可以直接使用 CIE rgb 组合(我认为我从上述公式中得到的那个)来创建图像?
有没有人熟悉使用 matlab 和卫星数据的图像?
谢谢!