How to input image in array?
1 view (last 30 days)
Show older comments
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?
Accepted Answer
Stephen23
on 29 Jun 2021
Edited: Stephen23
on 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 Comments
More Answers (1)
Chunru
on 29 Jun 2021
You can use cell array so that each cell stores an image (of different size).
im{k} = imageArray;
0 Comments
See Also
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!