matlab怎么批量读取一个文件夹中命名规律的tif文件?

如图,我有一堆命名规则的tif文件,runoff_20100101到runoff_20100131,怎么用matlab批量读取这些tif,并且取这31个tif的平均值(即... 如图,我有一堆命名规则的tif文件,runoff_20100101到runoff_20100131, 怎么用matlab批量读取这些tif,并且取这31个tif的平均值(即同一个网格的平均值)? 每个tif 都是336*288的矩阵。 我想把不同tif中的同一个网格取平均值,谢谢 展开
 我来答
百度网友33491ac
2017-12-29 · TA获得超过137个赞
知道小有建树答主
回答量:162
采纳率:100%
帮助的人:83万
展开全部

其实这种网上可以找到很多的……

clc;clear;

%工作目录是图形所在目录

Files=dir(['*.tif']);  

number=length(Files); 

sum_rbg_img = 0;

sum_gray_img = 0;

for i=1:number  

rbg_img=imread([Files(i).name]);  

sum_rbg_img = sum_rbg_img + rbg_img;  %% RGB 值

gray_img = rgb2gray(rbg_img);

sum_gray_img  = sum_gray_img + gray_img;  %% 灰度值

end 

% 平均值

av_rbg_img = sum_rbg_img/number;

av_gray_img = sum_gray_img/number;

chhsm
2017-12-29 · TA获得超过219个赞
知道小有建树答主
回答量:119
采纳率:100%
帮助的人:92.5万
展开全部
%以下以RGB图像为例,如果是灰度图像,删除2,3,12,13,16,17,18行即可。
R=[];
G=[];
B=[];
for i=1:31;
if i<10;
wj=['runoff_2010010',num2str(i),'.tif'];
else
wj=['runoff_201001',num2str(i),'.tif'];
end
X=imread(wj);
R(:,:,i)=X(:,:,1);
G(:,:,i)=X(:,:,2);
B(:,:,i)=X(:,:,3);
end
X(:,:,1)=mean(R,3);
X(:,:,2)=mean(G,3);
X(:,:,3)=mean(B,3);
image(X)
imwrite(X,'abc.tif')
%迈特莱博
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式