高光谱影像有几十个甚至上百个光谱通道,我们并不能直接显示高光谱影像,但如果我们知道R、G、B这三个波段的,便能够实现伪彩色影像显示。
以下是基于Matlab实现的伪彩色显示高光谱影像的函数
function [rgb]=func_hyper2rgb(hyper,RGBbands)
%高光谱图像伪彩色显示
%hyper 高光谱影像
%RGBbands 显示波段[r,g,b]
%rgb 输出为rgb图像
img=hyper(:,:,RGBbands);%截取待显示波段
%归一化
DIM=size(img);
img=img(:);
img=mapminmax(img',0,1);
%均衡化
img=reshape(img,DIM);
for i=1:3
img(:,:,i)=adapthisteq(img(:,:,i));
end
rgb=im2uint8(img);
imshow(rgb);
end
结果
load('PaviaU.mat','paviaU');
func_hyper2rgb(hyper,[57,34,3]);
![](https://img-blog.csdnimg.cn/img_convert/03ecbddc6d91e9554fdb6da44878f87c.jpeg)