高光谱图像处理笔记——数据集信息读取

数据集信息读取

clsAll    所有类的光谱信息
posAll    所有类的位置信息
label     所有分类标记
imGIS    GIS数据
im       剔除水蒸气波段后的数据集

im1     = multibandread('92AV3C.lan',[145,145,bandnum],'uint16',128,'BIL','ieee-le');

       读取数据集中数据

im1 (:,:,220)    = []; %剔除水蒸气波段
im1(:,:,150:163) = []; %剔除水蒸气波段
im1(:,:,104:108) = []; %剔除水蒸气波段
imGIS = multibandread('92AV3GT.GIS',[145,145,1],'uint8',128,'BSQ','ieee-le');

       读取GIS类别标记矩阵

figure;
imshow(imGIS);
figure;
imshow(label2rgb(imGIS));
img1=im(:,:,20)/max(max(max(im)));
img2=im(:,:,80)/max(max(max(im)));
img3=im(:,:,170)/max(max(max(im)));
figure;
imshow((img1+img2+img3)/3);

       显示图像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

clsNum = 16; %16类数据 
clsAll = [];
posAll = [];
for i = 1 : clsNum             %统计各类元素数目
    [x,y] = find (imGIS == i);   
    Class_num(i) = size(x,1);
end                             

     此代码块仅计数

choose_index  = 1:1:16;
for i = 1 : size(choose_index,2)    %遍历每一类标记
    [x,y] = find (imGIS == choose_index(i));  
    Class_num1(i) = size(x,1);
    pos{i} = [x,y]';   %各类的位置信息 (行列信息经过转置)
                       %本来是左边为行,右边为列
                       %转置后第一行为行,第二行为列
    for j=1:length(pos{i})
        cls{i}(:,j)  = im(x(j),y(j),:); %各类的光谱信息
    end
    clsAll = [clsAll cls{i}];  %所有类的光谱信息
    posAll = [posAll pos{i}];    %所有类的位置信息
end

     储存位置信息

label = [];
for i = 1 : size(choose_index,2)  
    label = [label, repmat(i,[1, Class_num1(i)])];
end

     储存Label信息(一个Label一列)

save('data.mat', 'clsAll', 'posAll', 'label', 'imGIS','im' ,'-v7.3');

     储存数据文件

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值