Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)

Matlab读取高光谱遥感数据

  • 1、高光谱遥感数据简介
  • 2、两个开源的高光谱遥感数据集
  • 3、高光谱遥感数据常用格式
    • 3.1 .Mat
    • 3.2 .Tif
  • 4、Matlab读取高光谱遥感数据
    • 4.1 Matlab读取.Mat格式的高光谱遥感数据
      • 4.1.1 Matlab代码读取.mat
      • 4.1.2 运行结果(整合后):
    • 4.2 Matlab读取.tif格式的高光谱遥感数据
      • 4.2.1 Matlab代码读取.tif
      • 4.2.2 运行结果(整合后):

Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第1张图片

1、高光谱遥感数据简介

        遥感影像具有四种分辨率:时间分辨率、空间分辨率、辐射分辨率和光谱分辨率。其中,对于光谱分辨率而言,按照成像传感器波谱通道划分数目的多少,分为多光谱、高光谱和超光谱。通常认为,多光谱波段数目在100以下,高光谱波段数目在100~10000之间,超光谱波段数目在10000以上

2、两个开源的高光谱遥感数据集

        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。
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第2张图片
        这里,我只下载了Washington DC Mall Image的数据,如下图所示:
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第3张图片

3、高光谱遥感数据常用格式

3.1 .Mat

Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第4张图片

3.2 .Tif

Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第5张图片

4、Matlab读取高光谱遥感数据

4.1 Matlab读取.Mat格式的高光谱遥感数据

        这里以Salinas.mat为例,首先打开Matlab软件,进入下载的高光谱遥感数据目录,作为工作空间;然后修改输入文件名后运行以下代码。
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第6张图片

4.1.1 Matlab代码读取.mat

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');

4.1.2 运行结果(整合后):

Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第7张图片第120波段
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第8张图片第180波段
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第9张图片第220波段
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第10张图片三波段组合
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第11张图片Salinas_gt

4.2 Matlab读取.tif格式的高光谱遥感数据

        这里以dc.tif(Washington DC Mall)为例,首先进入文件所在目录:
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第12张图片
        Matlab代码功能:获取第i、j、k三个波段,然后合成三个波段.

4.2.1 Matlab代码读取.tif

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');

4.2.2 运行结果(整合后):

Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第13张图片第130波段
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第14张图片第160波段
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第15张图片第190波段
Matlab读取高光谱遥感数据.Mat 和 .tif(2020.12.27)_第16张图片三波段组合

你可能感兴趣的:(图像结果处理导出,matlab,tiff,matrix)