在Matlab中读取文件夹上的多个图像

use*_*688 5 file-io matlab image

我在从一个文件夹中读取Matlab中的多个图像时遇到问题.我想用他们的原始名称阅读(使用命令imread因为是多频段).图像的名称类似于"2001_01","2001_02".这是我的代码:

myPath= 'C:\images\'; %'
a=dir(fullfile(myPath,'*.tif'));
fileNames={a.name};
Run Code Online (Sandbox Code Playgroud)

然后...

for k = 1:length(fileNames)
    filename = [fileNames(k).name];  
    I = imread(filename);
end
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我不知道如何单独保存和imread每一个.有人知道我该怎么办?非常感谢提前,

Eit*_*n T 6

  1. 关于第一个问题:

    但它不起作用......

    只需将输出dir直接分配到fileNames(不带括号):

    fileNames = dir(fullfile(myPath, '*.tif'));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 关于第二个问题:

    ......我不知道如何保存和imread每个人单独保存.

    您似乎需要一个单元格数组来存储单个集合中的所有图像.首先,将单元格数组定义为具有正确的大小:

    C = cell(length(fileNames), 1);
    
    Run Code Online (Sandbox Code Playgroud)

    然后将每个图像存储到不同的单元格中:

    for k = 1:length(fileNames)
        filename = fileNames(k).name;
        C{k} = imread(filename);
    end
    
    Run Code Online (Sandbox Code Playgroud)

    要在C以后访问单元数组中的任何图像,请使用花括号({}).例如,第二个图像的访问方式如下:C{2}.


小智 1

它返回完整的文件路径吗?文件名(k).name ? 或者只是实际的文件名?您可能需要在 myPath 后附加文件名并处理斜杠

fileName = strcat(myPath, fileName)
Run Code Online (Sandbox Code Playgroud)

然后进行读取,确保您已经查看了接触后的斜杠