[英]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每一個。 有人知道我該怎么辦? 非常感謝提前,
關於第一個問題:
但它不起作用......
只需將dir
的輸出直接分配到fileNames
(不帶括號):
fileNames = dir(fullfile(myPath, '*.tif'));
關於第二個問題:
......我不知道如何保存和單獨
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.