matlab的批量讀取程序如下:
%遍歷循環讀取所有tiff文件
file_path = 'E:\singleWoodSegement\CHMfenge(0.25)\';% 圖像文件夾路徑
img_path_list = dir(strcat(file_path,'*.tif'));%獲取該文件夾中所有TIF格式的圖像
img_num = length(img_path_list);%獲取圖像總數量
II=cell(1,img_num);
if img_num > 0
for jj = 1:img_num
image_name = img_path_list(jj).name;% 圖像名
[image,geo] = geotiffread(strcat(file_path,image_name));
II{jj}=image;
fprintf(' %d %s\n',jj,strcat(file_path,image_name));% 顯示正在處理的圖像名
end
end
我們使用geotiffread函數讀取帶有地理信息的tiff圖像,如遙感圖像等,該方法返回兩個參數,第一個參數image是圖像的二維矩陣,第二個參數geo是地理信息;如使用imread讀取則不能讀取地理信息,寫入文件時較麻煩。
批量寫入tiff圖像代碼如下:
CoordRefSysCode=32652; %座標系編碼 wgs84 utm 52n
outpath='';%路徑
outFile = strcat(outpathTreetop, out_treetopname);%路徑下的文件名
%輸出 第一個參數是輸出路徑 第二個參數是圖像二維矩陣 第三個參數是圖像的地理信息,第四、五個參數是投影信息
geotiffwrite(outFile, treeTop, geo,'CoordRefSysCode',CoordRefSysCode)
至此完成tiff圖像的讀取以及寫入,中間可以加入圖像處理的程序,給到geotiffwrite的第二個參數中,後輸出圖像。