之前一直想做一个深度学习样本制作工具,但是一直时间不多,今天终于开发完毕,再也不用其他人的工具了。不多说了,这里只需要输入遥感影像路径与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,加好友时请备注:样本工具制作。
来源:https://www.cnblogs.com/wzp-749195/p/12493453.html