对一个文件夹下的图像进行整体操作

前些日子(其实好几个月前了吧),复现一个遥感图像“填缝”的算法,想想matlab好久没用,便打算记录一点点,当作消遣。下面这个算是一个基底数据获取的小过程吧,可以当成matlab图像批处理的一个模板代码段。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clear;
clc;
srcDir=uigetdir();
cd(srcDir);
allnames=struct2cell(dir('*.tif')); %只处理8位的.tif文件
[k,len]=size(allnames); %获得tif文件的个数

J = imread(allnames{1,1});
[m,n] = size(J);
T = zeros(m,n);

for ii=1:len
%逐次取出文件
name=allnames{1,ii};
I=imread(name);
I(isnan(I))=0; %图像nan处设置为0
for jj=1:m
for kk = 1:n
T(jj,kk) = T(jj,kk)+I(jj,kk);
end
end
end
T=T/len;
imshow(T);
imwrite(T,'test_8.tif');

下面记几个用到的函数,方便以后忘了用来查查。
uigetdir:ui get dir

1
2
3
4
5
6
%打开一个模态对话框,返回path为用户所选择的路径,若用户点击关闭path=0
fpath = uigetdir
%打开路径path下的对话框
fpath = uigetdir(path)
uigetdir('C:\') %打开C盘
uigetdir(matlabroot) %打开matlab默认文件夹

其余几个:

1
2
3
4
cd(path) %这个就不必多说了吧,设置当前文件夹
c = struct2cell(s) %结构体s转化为元胞数组c
dir(name) %列出与name匹配的所有文件
isnan(i) %判断矩阵中为nan的地方并返回1,其余返回0

其实都蛮好记的了,说起来写完这个我在怀疑我会不会把这些东西忘掉哈哈哈

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2019-2021 子夜
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信