2

我需要一个遍历文件夹并处理文件夹中每个文件的 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
4

1 回答 1

0

如果您希望每一行a都有一个字符串和两个数字,它应该是一个元胞数组:

... 
a=[]
for i ...
    ...
    a{i}={files{i} u q};
end
...

要获取您所做的文件名

a{1}{1}
ans=
file1.jpg

得到你所做的数字

a{1}{2},a{1}{3}

(分别获取 file1.jpg 的标准和平均值。)
另一种方法是制作a一个结构数组。

于 2013-08-22T12:48:49.910 回答