遙感影像深度學習樣本制作工具


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM