遥感影像深度学习样本制作工具

     之前一直想做一个深度学习样本制作工具,但是一直时间不多,今天终于开发完毕,再也不用其他人的工具了。不多说了,这里只需要输入遥感影像路径与arcgis中绘制的shp文件路径,就可以制作样本了,生成固定块大小的样本,目前已经制作成Gui工具,支持批量栅格输入,自适应解决空间投影问题,界面如下:

 用户可以自己制定分块大小,这个功能在实际工程中,意义重大!

我们看一下关键代码:

% use shape file to clip raster, deep learning semantic segmentation
% samples!
% Author: Mr zhipan wang, Email:1044625113@qq.com, Date:2020-3-12,
% ChangSha,Hunan province,China,have a nice day!


clear
tic

sampelSize = 525;                                                          % 需要裁剪的样本块大小

%% read raster data and shaplefile and padarray of our raster image
imgfilename =      'C:\Users\Administrator\Downloads\深度学习变化检测\compositeband\2015_2018_composite.tif';
shp =              'C:\Users\Administrator\Downloads\深度学习变化检测\change.shp';
saveSamplePath =   'C:\Users\Administrator\Downloads\深度学习样本制作软件\sample\';

create_DL_image_Sample(imgfilename, saveSamplePath, shp, sampelSize);

toc

  关键是索引到图像坐标与地理坐标的关系:

function [row,col] = LonLat2DN(Info,latitude,longtitude)

% 输入值:
   % Info: 遥感图像投影信息
   % latitude: 纬度
   % longtitude: 经度
% 返回值
   % row: 行
   % col: 列

% [x,y] = projfwd(Info,latitude,longtitude);  %特别注意,需要将经纬转成map投影,函数接口中,纬度在前,切记
x = latitude;
y = longtitude;


[row,col] = map2pix(Info.RefMatrix,x,y);
row = floor(row);
col = floor(col);

end

  看一下自动制作的样本块效果如何:

       

                                              图1 样本块生成效果  

           

                                           图2 样本块生成效果

    总的来看,基本上可以满足需求了,深度学习预处理工作算是尘埃落定了,当然了,内部实现我用了并行加速的方式,这对大量样本输出来说,很有用,快很多,

当然,这个工具不仅仅是用来做样本的,还可以用来制作截图工具,比如说有很多矢量图斑,我们需要得到该矢量图斑的影像块,这个也是可以达到这个目的的。

后面有空再来打包成GUI工具,希望能够真正的推广起来,减少大家的工作量,如需要代码进行二次开发,Email:1044625113@qq.com,加好友时请备注:样本工具制作。

 

posted @ 2020-03-14 18:26  我爱木叶123qq  阅读(2157)  评论(0编辑  收藏  举报