簡體   English   中英

在Matlab中讀取文件夾上的多個圖像

[英]Read multiple images on a folder in Matlab

我在從一個文件夾中讀取Matlab中的多個圖像時遇到問題。 我想用他們的原始名稱閱讀(使用命令imread因為是多頻段)。 圖像的名稱類似於“2001_01”,“2001_02”。 這是我的代碼:

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

然后...

for k = 1:length(fileNames)
    filename = [fileNames(k).name];  
    I = imread(filename);
end

但它不起作用,我不知道如何單獨保存和imread每一個。 有人知道我該怎么辦? 非常感謝提前,

  1. 關於第一個問題:

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

    只需將dir的輸出直接分配到fileNames (不帶括號):

     fileNames = dir(fullfile(myPath, '*.tif')); 
  2. 關於第二個問題:

    ......我不知道如何保存和單獨imread每一個。

    您似乎需要一個單元格數組來存儲單個集合中的所有圖像。 首先,將單元格數組定義為具有正確的大小:

     C = cell(length(fileNames), 1); 

    然后將每個圖像存儲到不同的單元格中:

     for k = 1:length(fileNames) filename = fileNames(k).name; C{k} = imread(filename); end 

    要稍后訪問單元格數組C中的任何圖像,請使用花括號( {} )。 例如,第二個圖像的訪問方式如下: C{2}

代替

 fileNames={a.name};

嘗試

fileNames = arrayfun( @(x) fullfile( myPath, x.name ), a, 'UniformOutput', false );

然后,在循環中,您可以訪問第k個文件名

I = imread( filenames{k} );

它是否返回完整的文件路徑? fileNames(k).name? 或只是實際的文件名? 您可能需要使用帶有文件名的myPath附加myoff來處理斜杠

fileName = strcat(myPath, fileName)

然后做imread,確保你看過斜線一旦接觸

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM