Set union of Datastores with TransformedDatastores

1 view (last 30 days)
Given an imageDatastore and some transformation of it, e.g.,
imds1 = imageDatastore({'street1.jpg','peppers.png'});
imds2 = transform(imds1,@(x) imwarp(x,tform));
I would like to form the set union of these data stores in some way so that trainNetwork processes the series of images from both imds1 and imds2 as a single combined set (and similarly with the response data). Is this possible in some way?
I am aware that this functionality is somewhat captured by augmentedImageDatastore, but the operation I describe would open up a variety of data augmentation schemes not currently avaialble.
I am also aware of this thread,
but this does not cover what I am pursuing here, because the images in a TransformedDatastore are not physically stored anywhere (nor would I want them to be).

Accepted Answer

Jeremy Hughes
Jeremy Hughes on 26 Jul 2019
Edited: Jeremy Hughes on 26 Jul 2019
Horizontal (i.e. associated reads)
-----------
cds = combine(imds,otherds);
Vertical (i.e. joining two sets of files into one datastore)
-----------
imds = imageDatastore({'folder1/*.jpg','folder2/*.png'});
Or leave off the extensions
imds = imageDatastore({'folder1/','folder2/'});
  7 Comments
Matt J
Matt J on 26 Jul 2019
Edited: Matt J on 26 Jul 2019
That looks like what I want!
Just out of curiousity, though, is it possible to do the customization by inheriting from imageDatastore, rather than matlab.io.datastore, as the example at your link shows?
Carlos Ramirez
Carlos Ramirez on 8 Sep 2020
Edited: Carlos Ramirez on 8 Sep 2020
Hi, did you ever manage to solve this ?. I don't really understand what's the purpose of the function combine(idms,idms2) (with idms2 being a transformed one) if later the read function returns two images at the same time. How useful is that for training a CNN using trainNetwork ?. Similat to the original question, I do not want to physically store the augmented images created by the transform function. Any help ?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!