目录

  • (一)高光谱谱格式转换之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.042013
% 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轴坐标描述

(六)高光谱图像拼接组合

(七)高光谱图像快照式模拟编码

(八)高光谱图像分波段显示

持续更新中…

最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)相关推荐

  1. 多源数据的融合发展现状与趋势(二)——全色、多光谱、高光谱图像融合

    现有的空谱融合对象主要是全色图像与多光谱图像.全色图像与高光谱图像.多光谱图像与高光谱图像.从波段数量来说,全色图像与多光谱或高光谱图像的融合属于"一对多"的融合, 多光谱图像与高 ...

  2. 遥感影像的全色、多光谱、高光谱图像

    1. 全色图像 2. 多光谱图像 3. 高光谱图像 4. RGB图像   遥感成像原理: 光进入相机镜头,光电感应装置将光信号转换为电信号,量化电脉冲信号,记录为一个像素值.传感器响应函数设计为,要使 ...

  3. RSD处理高分5号高光谱(GF5 AHSI)数据(四)——从地物光谱搜索高光谱数据集

    上一篇(RSD处理高分5号高光谱(GF5 AHSI)数据(三)--从GF5 AHSI 高光谱样本数据搜索光谱库)我们使用从高光谱数据集提取到的样本数据搜索光谱库,查找与之最相似的地物光谱,并列出相似程 ...

  4. 【pytorch】torchvision.transforms 图像的变换详解;图像的预处理;数据增强

    目录 1 torchvision.transforms下的具体操作 1.1 ToTensor() 1.2 Normalize 1.3 RandomRotation 1.4 Resize 1.5 Ran ...

  5. 根据真实数据计算一段时间内价格走势,echarts折线图数据补全方法。

    分享一个计算一段时间内价格走势的方案,以7.18 ~ 8.17这段时间为例,由于原始数据的不连贯.不确定性,可以分三种情况 第一种:原始数据都在这个时间段内,假设最晚的一条数据是8.1号,那么我们根据 ...

  6. 如何生成高光谱图像某一点像素值的反射光谱图

    如何生成高光谱图像某一点像素值的反射光谱图 在做高光谱图像超分辨率对比实验的时候需要画光谱反射折线图,在网上找了好久也不知道怎么画. 然后我再外网找到了用MATLAB画的方法,亲测可用! reflec ...

  7. 基于图像的数据增强方法发展现状综述

    基于图像的数据增强方法发展现状综述 人工智能技术与咨询 2022-03-22 20:57 点击蓝字 · 关注我们 来源:< 计算机科学与应用> ,作者冯晓硕等 关键词: 数据增强:图像数据 ...

  8. 深入浅出 | 图像分类之数据增强全梳理

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 知乎作者:小小将 整理:计算机视觉life 原文链接:https://zhuanlan.zhihu. ...

  9. 【Tool】Augmentor和imgaug——python图像数据增强库

    Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...

最新文章

  1. 【转】Oracle SPARC SuperCluster全能王:不改大道至简本色
  2. java params 参数_将params作为参数传递给类扩展方法的函数
  3. Py之easygui:easygui的简介、安装(最正确安装)、使用方法之详细攻略
  4. linux下curl指令常见使用
  5. WPF 获取鼠标屏幕位置、窗口位置、控件位置
  6. gb2312编码表_汉字编码输入系统模型(一)
  7. Ubuntu 18.04 忘记 mysql root密码及其重置
  8. sqlite读音_SQLite 数据类型
  9. Linux中的进程调度(六)
  10. cookie、session和application超详解说
  11. python创建一个csv文件_Python程序中用csv模块来操作csv文件的基本使用教程
  12. 删除pdf(论文)的行号
  13. catia 桥接曲面圆角_CATIA建模教程_二_圆角及桥接在空间曲线中的应用
  14. 武昌理工学院计算机巧业怎样,最潮高校宿管员巧念育人经 做学生们的“知心大姐”...
  15. CSS中:margin和padding的区别 margin:auto与margin: 0 auto区别
  16. 扫地机器人朋友圈文案_匠龙扫地机器人广告片创意脚本文案
  17. VS之Excel文件操作
  18. 利用程序随机构造N个已解答的数独棋盘
  19. 机器学习(Machine Learning)基础
  20. 百度快速收录我的网站-百度推送软件免费

热门文章

  1. 华硕灵耀X双屏怎么样?华硕灵耀x2双屏缺点?详细性能评测
  2. centos安装Trojan安全上网
  3. .Net C# 中可为空值类型 ?
  4. B站【狂神说Java笔记】-注解和反射
  5. UE4 保持UV高级材质,基于WorldAlignedTexture材质函数修改而来(参考:知乎)
  6. Java通用权限系统视频(2021年高含金量版)
  7. 如何用波士顿矩阵分析需求
  8. c语言 access方法,c语言连接access数据库(odbc)方式
  9. 如何查看浏览器已经记录的密码
  10. 循环输入直到遇到一个标志的时候结束