如何从函数中的工作区迭代图像

Posted

技术标签:

【中文标题】如何从函数中的工作区迭代图像【英文标题】:How Can iterate Images from workspace in the function 【发布时间】:2021-11-01 06:18:28 【问题描述】:

我在 .mat 文件中保存了 20 张图像,当我将这些图像加载到工作区时,我想在函数中对其进行迭代。这些图像有不同的名称和不同的大小。有人可以帮忙吗?

【问题讨论】:

我认为你的问题没有提供足够的信息来回答,但也许这个链接回答了你的问题***.com/questions/408080/… 您可以将evalin 用作here,但您不应该... 更好的解决方案:1. 将mat 文件的名称传递给您的函数。 2. load 将垫子转换为类似S = load('f.mat'); 的结构。 3.C = struct2cell(S) 一样使用struct2cell 4. 迭代C。 (您也可以迭代结构字段)。 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:

加载您的文件。调用 Matlab 的“who(...)”函数,该函数列出文件中的变量名称。使用 Matlab 的“evalin(...)”函数将变量的内容存储到元胞数组中。

最终的元胞数组“images”包含您的所有图像数据,无论每个图像的大小如何。现在您可以根据需要迭代此元胞数组。

下面的代码应该可以解决问题。你只需要替换你的文件名。

load('your_images.mat')
image_vars = who('-file', 'your_images.mat');
N_images = numel(image_vars);
images = cell(N_images, 1);
for ii = 1:N_images
    imagesii = evalin('base', image_varsii);
end

【讨论】:

以上是关于如何从函数中的工作区迭代图像的主要内容,如果未能解决你的问题,请参考以下文章

如何使用把手 (hbs) 迭代嵌套数组和对象?

如何从异步迭代器中产生一系列承诺?

如何使 jQuery 函数迭代从同一类中的 2 个列表中获取的单独数组?

如何从数据框中迭代值并将值传递给 Python 中的发送电子邮件函数

迭代器偶尔会出现分段错误

Django 模板迭代和渲染函数返回的列表中的项目