MATLAB: Assigning values to images in an imageset

image analysisimage processingMATLAB

I read an imageset as such:
imgset = imageSet('dataset');
a1 = read(imgset,1);
a2 = read(imgset,2);
a3 = read(imgset,3);
Where i create a new variable that corresponds to each image in a dataset.
Is there an automated way that i can do this (create new variables into the workspace) for the duration of the imageset (ie imgset.Count)?

Best Answer

  • You should try to avoid dynamic variables names like a1, a2, ... and use arrays. Read here why: https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval
    For example, here you can use cell arrays
    imgset = imageSet('dataset');
    imgs = cell(1, imgset.Count);
    for i=1:numel(imgs)
    imgs{i} = read(imgset, i);
    end
    and then you can access the image using brace indexing
    imshow(imgs{1});
    imshow(imgs{2});