How to input image in array?

1 次查看(过去 30 天)
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?

采纳的回答

Stephen23
Stephen23 2021-6-29
编辑:Stephen23 2021-6-30
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

更多回答(1 个)

Chunru
Chunru 2021-6-29
You can use cell array so that each cell stores an image (of different size).
im{k} = imageArray;

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by