我个人本是要处理60景遥感影像,需逐像元处理,但是由于刚开始我对matlab掌握不深,所以不会编程,就全部用最低级的方法也就是ArcGIS来处理,two thousand years later…我用arcgis处理完毕。
后来又研究了一番,写出了完整的代码,想想都是泪/(ㄒoㄒ)/~~
以下代码是批量读取数据后,求了一下均值,其他针对多景影像逐像元栅格计算等处理的都是同样的思路。
代码思路:
(1)第一部分:批量读取文件夹下的所有文件,通用;
(2)第二部分(核心):利用for循环创建三维矩阵。一景栅格影像是二维m×n矩阵,那么对于多景影像的话,就可以将其排列为三维矩阵,新加的影像位于三维矩阵的页上,也就是说有多少景影像,三维矩阵就有多少页。进度条可要可不要。
(3)将处理得到的结果栅格影像输出,也是通用的。
具体代码如下(没有任何删减):
%%选择目标文件夹,注意文件夹里的数据名要按顺序排列
%特别是进行时间序列分析时
path=uigetdir('','Select a location'); %选择文件夹位置,获取路径
fileList=dir(fullfile(path,'*.tif')); %获取文件夹下所有tif文件
n=length(fileList