之前一直想做一個深度學習樣本制作工具,但是一直時間不多,今天終於開發完畢,再也不用其他人的工具了。不多說了,這里只需要輸入遙感影像路徑與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,加好友時請備注:樣本工具制作。