遥感影像具有四种分辨率:时间分辨率、空间分辨率、辐射分辨率和光谱分辨率。其中,对于光谱分辨率而言,按照成像传感器波谱通道划分数目的多少,分为多光谱、高光谱和超光谱。通常认为,多光谱波段数目在100以下,高光谱波段数目在100~10000之间,超光谱波段数目在10000以上
Hyperspectral Remote Sensing Scenes:包含Indian Pines、Salinas、Pavia Centre and University、Cuprite、 Kennedy Space Center、Botswana、anomaly detection(7个地区),在每个地区都会有介绍类型数量、波段数,可直接下载。
Hyperspectral Images:Portion of Southern Tippecanoe County, Indiana、Northwest Tippecanoe County, Indiana、Washington DC Mall。
这里,我只下载了Washington DC Mall Image的数据,如下图所示:
这里以Salinas.mat为例,首先打开Matlab软件,进入下载的高光谱遥感数据目录,作为工作空间;然后修改输入文件名后运行以下代码。
load('Salinas.mat')
InputMatImg=salinas;
b = size(InputMatImg);
fprintf('输入图像宽度为 %d\n',b(1));
fprintf('输入图像高度为 %d\n',b(2));
fprintf('输入图像波段数为 %d\n',b(3));
i=120;j=180;k=220;%自选三个波段
InputImg_r= InputMatImg(:,:,i);%获取第i个波段
InputImg_g= InputMatImg(:,:,j);%获取第j个波段
InputImg_b= InputMatImg(:,:,k);%获取第k个波段
InputImg_r= uint8(InputImg_r);%将i波段的灰度值转为0~255
InputImg_g= uint8(InputImg_g);%将j波段的灰度值转为0~255
InputImg_b= uint8(InputImg_b);%将k波段的灰度值转为0~255
RGBImg=cat(3,InputImg_r,InputImg_g,InputImg_b);%将i、j、k三个波段进行合成
figure;
subplot(221);imshow(InputImg_r);title('红色波段');
subplot(222);imshow(InputImg_g);title('绿色波段');
subplot(223);imshow(InputImg_b);title('蓝色波段');
subplot(224);imshow(RGBImg);title('合成波段');
imwrite(InputImg_r,['MATBand',num2str(i),'.jpg']);
imwrite(InputImg_g,['MATBand',num2str(j),'.jpg']);
imwrite(InputImg_b,['MATBand',num2str(k),'.jpg']);
imwrite(RGBImg,'compositeMATRGBimg.jpg');
|
|
|
|
这里以dc.tif(Washington DC Mall)为例,首先进入文件所在目录:
Matlab代码功能:获取第i、j、k三个波段,然后合成三个波段.
InputTIFImage = importdata('dc.tif');
Info=imfinfo('dc.tif')
i=130;j=160;k=190;%自选三个波段
InputImage_r= InputTIFImage(:,:,i);%获取第i个波段
InputImage_g= InputTIFImage(:,:,j);%获取第j个波段
InputImage_b= InputTIFImage(:,:,k);%获取第k个波段
Image_r= uint8(InputImage_r);%将i波段的灰度值转为0~255
Image_g= uint8(InputImage_g);%将j波段的灰度值转为0~255
Image_b= uint8(InputImage_b);%将k波段的灰度值转为0~255
RGBImg=cat(3,Image_r,Image_g,Image_b);%将i、j、k三个波段进行合成
figure;
subplot(221);imshow(Image_r);title('红色波段');
subplot(222);imshow(Image_g);title('绿色波段');
subplot(223);imshow(Image_b);title('蓝色波段');
subplot(224);imshow(RGBImg);title('合成波段');
imwrite(Image_r,['TIFBand',num2str(i),'.jpg']);
imwrite(Image_g,['TIFBand',num2str(j),'.jpg']);
imwrite(Image_b,['TIFBand',num2str(k),'.jpg']);
imwrite(RGBImg,'compositeRGBTIFimg.jpg');
|
|
|
|