我需要一个matlab函数,它通过一个文件夹来处理文件夹中的每个文件。我想把文件夹名称和文件名作为输入,我需要用它来处理该文件夹中的每个文件(从文件夹中的所有其他文件中减去一个图像)。我的功能还计算每个图像的SD和平均值。我希望我的函数能够返回一个矩阵,该矩阵显示与图像数量一样多的行,其中3列表示:每个图像的名称,SD和平均值,以便将其导出为excel。这是我的代码到目前为止,但我真的错过了一些东西! 非常感谢你的帮助!我已经做了好几天了!
function [m]=nenna(path,t) %# folder path
path=(path)
files = dir( fullfile(path,'*.jpg') ); %# list all *.xyz files
files = {files.name}'; %'# file names
data = cell(numel(files),1);%# store file contents
a=zeros(numel(files),3);
for i=1:numel(files)
fname = fullfile(path,files{i}); %# full path to file
x=imread(files);
s=imread(t);
j=imsubtract(x,s);
j=double(j);
u=std(j(:))
q=mean(j(:))
a(i)=[files(i);u;q]
end
答案 0 :(得分:0)
如果您希望a
中的每一行都有一个字符串和两个数字,那么它应该是一个单元格数组:
...
a=[]
for i ...
...
a{i}={files{i} u q};
end
...
要获取您执行的文件名
a{1}{1}
ans=
file1.jpg
获取你做的数字
a{1}{2},a{1}{3}
(获得std和file1.jpg的意思,resp。)
另一种方法是使a
成为一个结构数组。