这是所需的工作流程:
- 我想将 100 张图像加载到 MATLAB 工作区
- 在图像上运行我的一堆代码
- 将我的输出(我的代码返回的输出是一个整数数组)保存在一个新数组中
到最后我应该有一个数据结构来存储图像 1-100 的代码输出。
我该怎么做呢?
如果您知道它们所在目录的名称,或者如果您 cd 到该目录,则使用 dir 获取图像名称列表。
现在它只是一个用于加载图像的 for 循环。将图像存储在元胞数组中。例如……
D = dir('*.jpg');
imcell = cell(1,numel(D));
for i = 1:numel(D)
imcell{i} = imread(D(i).name);
end
请注意,这 100 张图片会占用太多内存。例如,如果是 uint8 RGB 值,单个 1Kx1K 图像将需要 3 兆字节来存储。这可能看起来不是很大。
但是其中 100 张图像将需要 300 MB 的 RAM。如果您对这些图像的操作将它们变成 double ,那么真正的问题就会出现,那么它们现在将占用 2.4 GB 的内存。这会很快耗尽您的 RAM 量,特别是如果您使用的不是 64 位版本的 MATLAB。
我是一名优秀的程序员,十分优秀!