How to input image in array?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Tawsif Mostafiz
am 29 Jun. 2021
Bearbeitet: Stephen23
am 30 Jun. 2021
Hi, I am using this part of code to input multiple images.
myFolder = 'Folderlocation';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isfolder(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s\nPlease specify a new folder.', myFolder);
uiwait(warndlg(errorMessage));
myFolder = uigetdir(); % Ask for a new one.
if myFolder == 0
% User clicked Cancel
return;
end
end
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(myFolder, '*.bmp'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
fullFileName = fullfile(theFiles(k).folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
% Now do whatever you want with this file name,
% such as reading it in as an image array with imread()
imageArray = imread(fullFileName);
Now, I want to store these images in an array, something like image(k). But any effort to it shows error. How do I do it?
Akzeptierte Antwort
Stephen23
am 29 Jun. 2021
Bearbeitet: Stephen23
am 30 Jun. 2021
The simplest solution is to just store the image data in the same structure that DIR returns:
S = dir(fullfile(myFolder,'*.bmp'));
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
fprintf(1, 'Now reading %s\n', F); % optional
S(k).data = imread(F);
end
For example, the second file:
S(2).name % filename
S(2).data % image data
0 Kommentare
Weitere Antworten (1)
Chunru
am 29 Jun. 2021
You can use cell array so that each cell stores an image (of different size).
im{k} = imageArray;
0 Kommentare
Siehe auch
Kategorien
Mehr zu File Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!