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

这篇具有很好参考价值的文章主要介绍了最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


完整代码下载地址: 高光谱数据处理大礼包

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

最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)文章来源地址https://www.toymoban.com/news/detail-447012.html

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

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

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

(九)mat转tiff格式

%% 将mat格式的文件转化为tif格式
% InputMatFileName='D:'
% OutputTifFilename='D'
% load(InputMatFileName);
% InputMatImg=double(res);
% t = Tiff(OutputTifFilename,'w');
% if size(InputMatImg,3) == 3
%     t.setTag('Photometric',Tiff.Photometric.RGB);
% else
%     t.setTag('Photometric',Tiff.Photometric.MinIsBlack);%颜色空间解释方式
% end
% t.setTag('Compression',Tiff.Compression.None);%无压缩
% t.setTag('BitsPerSample',64);% 由于输入.mat为double类型,所以选择了64% t.setTag('SamplesPerPixel',size(InputMatImg,3));% 每个像素的波段数目
% t.setTag('SampleFormat',Tiff.SampleFormat.IEEEFP);% 配合BitsPerSample64位double类型,选择IEEEFP来对应
% t.setTag('ImageLength',size(InputMatImg,1));% 影像宽度
% t.setTag('ImageWidth',size(InputMatImg,2));% 影像高度
% t.setTag('PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);%平面配置选择集中式
% t.write(InputMatImg);% 准备好了头文件,开始写影像数据
% t.close();% 关闭影像

持续更新中…

到了这里,关于最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【高光谱图像:通过空间-光谱进行重建】

    (渐进式空间-光谱联合网络的高光谱图像重建) (☆☆☆☆☆☆☆学习从MS构建HS☆☆☆☆☆☆☆) 高光谱(HS)图像被广泛用于识别和表征感兴趣场景中的目标,具有高获取成本和低空间分辨率。通过高空间分辨率多光谱(MS)图像的光谱重建获得高空间分辨率HS图像(HS

    2024年02月11日
    浏览(26)
  • MATLAB图像处理实现高光抑制

    下面是的几个用MATLAB进行高光抑制的处理例子。 原理是用某像素周围一定大小的邻域中的最大值减去该像素值,可达到亮光抑制的效果。在MATLAB中,可以使用mat2gray函数将图像归一化后,再使用imextendedmax函数进行最大值滤波,函数调用方式为: 其中,I为输入图像,thresh为一

    2024年02月12日
    浏览(26)
  • 智能文档图像处理技术:解决大数据时代文档图像处理难题

    智能文档图像处理技术是指利用计算机视觉和人工智能等技术对文档图像进行处理和分析,实现自动化识别、提取、分类和管理的技术。随着人工智能时代的到来和各行业信息化进程的加速,越来越多的个人和企业用户开始借助智能文档图像处理技术来提高工作效率,降低人

    2024年02月09日
    浏览(29)
  • #高光谱图像分类#:分类的方法有哪些?

    高光谱图像分类方法可以根据分类粒度的不同分为基于像素的分类和基于对象的分类。 基于像素的分类:这种分类方法是针对每个像素进行分类,将像素的光谱信息作为输入特征,然后利用各种分类算法对像素进行分类。常见的分类算法包括支持向量机(SVM)、随机森林(

    2024年02月05日
    浏览(26)
  • 基于Python的高光谱图像分析教程

    超光谱图像 (HSI) 分析因其在从农业到监控的各个领域的应用而成为人工智能 (AI) 研究的前沿领域之一。 该领域正在发表许多研究论文,这使它变得更加有趣! 和“对于初学者来说,在 HSI 上开始模式识别和机器学习是相当麻烦的”,因为与计算机视觉中的其他机器学习 (ML

    2024年02月06日
    浏览(21)
  • 数据图像处理——期末复习题库

    一.填空题 1.数字图像是用一个数字阵列来表示的图像。数字阵列中的每个数字,表示数字图像的一个最小单位,称为( )。 2.数字图像处理可以理解为两个方面的操作:一是从图像到图像的处理,如图像增强等; 二是( ),如图像测量等。 3.数字图像处理可以理解为两个方

    2024年02月10日
    浏览(32)
  • 基于卷积神经网络的高光谱图像分类

    近年来深度学习的技术在计算机视觉领域中大放异彩,使得对多光谱数据分类的研究迅速发展,结合2D-CNN,3D-CNN,注意力机制,PCA降维等方法均可使得对多光谱图像的分类精度得以提升。目前CNN网络大量用于传统的CV领域,而对于高光谱图像的分类仍比较缺乏,本文章基于C

    2024年02月10日
    浏览(29)
  • 图像处理—数据集的构建

    人类在认识世界的过程中,首先是获取信息,如眼睛看、耳朵听、鼻子闻等。只有获取了信息后才能进行认知,而这些信息的质量对我们的学习效果影响重大。深度学习也是类似的,我们提供了什么数据,计算机才能分析什么样的数据,对于未提供的数据,计算机往往无法判

    2024年02月04日
    浏览(24)
  • 比赛准备笔记 --- TensotFlow、软件调试、数据预处理(图像,csv数据)

    TensorFlow是由Google团队开发的一个开源深度学习框架,完全基于Python语言设计。它的初衷是以最简单的方式实现机器学习和深度学习的概念,结合了计算代数的优化技术,使计算许多数学表达式变得简单。 优势: 强大的计算能力,支持多种硬件和分布式计算 灵活的数据流模型

    2024年02月06日
    浏览(37)
  • 《数字图像处理-OpenCV/Python》连载(10)图像属性与数据类型

    本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html 在Python语言中,OpenCV以Numpy数组存储图像,对图像的访问和处理都是通过Numpy数组的操作来实现的。 本章内容概要 介绍Python语言中OpenCV的数据结构,学习获取图像

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包