目录
(一)高光谱谱格式转换之rar转mat格式①RAW转tiff步骤:②tiff转mat步骤:(二)两种方法把高光谱图像缩放到0-1的数据集(三)高光谱数据预处理成规定大小和规格的数据集(四)高光谱数据增强①旋转②缩放(五)论文可用的光谱反射率等曲线对比图画法(六)高光谱图像拼接组合(七)高光谱图像快照式模拟编码(八)高光谱图像分波段显示持续更新中.........完整代码下载地址:高光谱数据处理大礼包
(一)高光谱谱格式转换之rar转mat格式
网上的很多公开高光谱数据集(如cave,icvl等)下载下来是raw格式,而一般用神经网络等方法对高光谱数据进行分类、训练、超分辨的时候,大多使用.mat格式的高光谱数据,碍于网上一直没有一个系统全面的方法,于是我总结了以下方法,分为两步:
1.使用ENVI软件读取原格式的高光谱数据,选取需要的光谱通道,裁剪需要的像素区域,转化为.tiff格式保存2.使用MATLAB软件编写代码批量将.tiff格式数据转化为mat格式光谱数据
①RAW转tiff步骤:
导入高光谱图像
选择感兴趣的波段和裁剪区域
保存为tiff格式
②tiff转mat步骤:
%% 读取文件夹里的所有tif文件转化成mat格式(452,25-643.27) 28个通道规格化到0-1之间的测试集% path='C:\HIS-pre-deal\430-740粉末\New Folder'%保存放tiff的文件路径% A = dir(fullfile(path,'*.tif'));% A = struct2cell(A);% num = size(A)% for i=1:num(2)% a=A((i-1)*6+1);% a=a{1};%deal = importdata(a);%for j=1:28% img(:,:,j)=deal(:,:,20+2*j);%end%img=single(img)/double(65536);%k='C:\HIS-pre-deal\430-740粉末\New Folder\'; %保存结果的文件路径%kk=num2str(i);%kkk='.mat';%kkkk=[k,kk,kkk];% %save(kkkk,'img')% end
(二)两种方法把高光谱图像缩放到0-1的数据集
%% 把高光谱图像转变成0-1的数据集% % %% 方法一:% img_expand = importdata('15.mat');% % % img=im2double(img_expand);% % % save('C:\Users\Desktop\test1.mat','img')% % %% 方法二:% c=0;% for i=1:31 //通道数为31%b=max(max(squeeze(img_expand(:,:,i))));%c=max(b,c);% end%img_h = importdata('test6.mat');% img=double(img)/double(65536);% save('C:\Users\Desktop\test1.mat','img')
(三)高光谱数据预处理成规定大小和规格的数据集
%% 高光谱数据预处理成规定大小和规格的数据(660*660*12) %%%%%%%%% img_expand = importdata('scene148.mat');% for i=1:12 //通道数%img(:,:,i)=img_expand(1:660,1:660,i); //长宽%%imshow(img(:,:,i))% end% save('C:\Users\Desktop\test1.mat','img')
(四)高光谱数据增强
由于拍摄的高光谱数据总是有限的,而神经网络需要大量的数据样本来训练拟合,一种行而有效的方式就是数据增强。
①旋转
%% 读取路径下的所有mat文件,并左旋转90(角度自行修改,右旋类似)% path='C:\HIS-pre-deal\'% A = dir(fullfile(path,'*.mat'));% A = struct2cell(A);% num = size(A)% for i=1:num(2)% a=A((i-1)*6+1);% a=a{1};% deal = importdata(a);% for j=1:28% dea=imrotate(squeeze(deal(:,:,j)),90);% img_hs(:,:,j)=reshape(dea,1,512,512);% end% kk=num2str(i);% k='C:\HIS-pre-deal\左旋转90\';% kkk='_左旋.mat';% kkkk=[k,kk,kkk];% save(kkkk,'img_hs')% end
②缩放
%% 第一种缩放形式:对高光谱图像进行大小缩放,并保存到相应文件夹% size=0.5; //缩放尺度% for i=1:28%deal=img(:,:,i);%img_deal(:,:,i)=imresize(deal,size);% %subplot(4,7,i)% %imshow(deal)% end% img=0;% img=img_deal;% save('C:\HIS-pre-deal\Deal-img\scene010.mat','img')%% 第二种缩放形式:剪切。% img_hs = importdata('scene200.mat');% for i=1:24%deal=img_hs(100:429,100:429,i);%deal=im2double(deal);% img(:,:,i)=deal;% %subplot(4,7,i)% %imshow(deal)% end% save('C:\HIS-pre-deal\Deal-img\660-1.mat','img')
(五)论文可用的光谱反射率等曲线对比图画法
%% 人物% x=[455.65 462.49 469.33 476.17 483.02 489.9 496.78 503.65 510.55 517.45 524.36...%531.29 538.21 545.15 552.11 559.06 566.02 573.01 579.99 586.99 594.0 601.0 608.03 615.06 622.1 629.16 636.23 643.27];%x轴上的光谱波段值% a=[0.046328 %a数据y值% 0.042890% 0.049437% 0.052339% 0.055272% 0.057959% 0.061730% 0.064379% 0.069850% 0.076214% 0.089666% 0.109428% 0.134469% 0.151328% 0.155143% 0.163445% 0.160454% 0.145173% 0.134909% 0.119050% 0.107735% 0.092402% 0.078581% 0.073911% 0.068458% 0.066618% 0.064307% 0.061029]; %b数据y值% b=[0.050210% 0.048562% 0.047848% 0.048780% 0.053608% 0.054584% 0.062421% 0.066507% 0.070665% 0.082705% 0.092355% 0.112599% 0.148814% 0.160001% 0.164293% 0.159431% 0.150049% 0.139673% 0.123176% 0.113360% 0.104669% 0.093209% 0.083308% 0.078677% 0.072299% 0.070175% 0.066874% 0.067031];% c=[0.032769 %c数据y值% 0.033612% 0.033636% 0.035964% 0.039693% 0.044313% 0.052775% 0.061756% 0.073795% 0.086206% 0.102327% 0.120271% 0.134366% 0.143251% 0.146189% 0.148024% 0.140879% 0.133600% 0.123866% 0.112065% 0.106048% 0.100711% 0.092865% 0.086199% 0.081167% 0.077816% 0.073928% 0.071923% ];% d=[ 0.039684 %d数据y值% 0.035936% 0.039848% 0.037460% 0.037582% 0.04% 0.048105% 0.052788% 0.059851% 0.075452% 0.085753% 0.104524% 0.117041% 0.120392% 0.119326% 0.113422% 0.105514% 0.094912% 0.085812% 0.074321% 0.067386% 0.057413% 0.050733% 0.040744% 0.041173% 0.038101% 0.035418% 0.032557];% e=[ 0.063452 %e数据y值% 0.065448 % 0.066141 % 0.065247 % 0.067798 % 0.072938 % 0.078020 % 0.080517 % 0.084534 % 0.091731 % 0.101428 % 0.109275 % 0.117019 % 0.120379 % 0.117849 % 0.111377 % 0.099289 % 0.085903 % 0.078416 % 0.073114 % 0.068887 % 0.063553 % 0.059130 % 0.057317 % 0.059024 % 0.055005 % 0.057847 % 0.058094 % ];% f=[0.051219 %f数据y值% 0.065892% 0.055956% 0.049184% 0.063560% 0.074998% 0.060415% 0.067667% 0.058828% 0.079587% 0.068357% 0.099085% 0.098976% 0.094208% 0.092482% 0.093320% 0.103216% 0.086699% 0.078904% 0.062498% 0.070742% 0.068190% 0.080951% 0.067120% 0.067791% 0.062038% 0.071721% 0.071092% ];% g=[0.046503%g数据y值% 0.054286% 0.039724% 0.045279% 0.055584% 0.064824% 0.052188% 0.051663% 0.045794% 0.076992% 0.065128% 0.090259% 0.093017% 0.084527% 0.091849% 0.093118% 0.110003% 0.101593% 0.099130% 0.087800% 0.094021% 0.102329% 0.105936% 0.092304% 0.094816% 0.089412% 0.099360% 0.091986];% % plot(x,a,'-*b',x,b,'-or'); %线性,颜色,标记% plot(x,a,'-or','LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor','red','MarkerFaceColor','red');% hold on;% plot(x,b,'-ob','LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor',[0 0.6 1],'MarkerFaceColor',[0 0.6 1]);% hold on;% plot(x,c,'--og','LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor','green','MarkerFaceColor','green');% hold on;% plot(x,d,'--o','Color',[1 .5 0],'LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor',[1 .5 0],'MarkerFaceColor',[1 .5 0]);% hold on;% plot(x,e,'--oc','LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor','cyan','MarkerFaceColor','cyan');% hold on;% plot(x,f,'--om','LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor','magenta','MarkerFaceColor','magenta');% hold on;% plot(x,g,'--oy','LineWidth',1.5,'MarkerSize',3,'MarkerEdgeColor','yellow','MarkerFaceColor','yellow');% hold off;% axis([450,650,0,0.18]) %确定x轴与y轴框图大小% set(gca,'XTick',[450:50:650]) %x轴范围1-6,间隔1% set(gca,'YTick',[0:0.04:0.18]) %y轴范围0-700,间隔100% legend('Truth','Ours','TSA','λ-net','HSSP','DCSI','TwIST'); %右上角标注% xlabel('Wavelength(nm)') %x轴坐标描述% ylabel('Intensity') %y轴坐标描述
(六)高光谱图像拼接组合
(七)高光谱图像快照式模拟编码
(八)高光谱图像分波段显示
持续更新中…
最全可白嫖之高光谱图像数据处理(格式转换 数据增强 通道剪切 大小裁剪 光谱显示 折线图表示)