Main Content

read

Read data from augmentedImageDatastore

Description

data = read(auimds) returns a batch of data from an augmented image datastore, auimds. Subsequent calls to the read function continue reading from the endpoint of the previous call.

example

[data,info] = read(auimds) also returns information about the extracted data, including metadata, in info.

Examples

collapse all

Load the sample data, which consists of synthetic images of handwritten digits. XTrain is a 28-by-28-by-1-by-5000 array, where:

  • 28 is the height and width of the images.

  • 1 is the number of channels.

  • 5000 is the number of synthetic images of handwritten digits.

labelsTrain is a categorical vector containing the labels for each observation.

load DigitsDataTrain

Create an imageDataAugmenter object that specifies preprocessing options for image augmentation, such as resizing, rotation, translation, and reflection. Randomly translate the images up to three pixels horizontally and vertically, and rotate the images with an angle up to 20 degrees.

imageAugmenter = imageDataAugmenter( ...
    RandRotation=[-20,20], ...
    RandXTranslation=[-3 3], ...
    RandYTranslation=[-3 3]);

Create an augmentedImageDatastore using the image data augmented. When you read from the datastore, for example during network training using the trainnet function, the datastore performs image augmentation and resizes the images. The datastore augments the images without saving any images to memory.

imageSize = [64 64 1];
augimds = augmentedImageDatastore(imageSize,XTrain,labelsTrain,DataAugmentation=imageAugmenter);

Read from the datastore.

minibatch = read(augimds)
minibatch=128×2 table
        input         response
    ______________    ________

    {64×64 single}       3    
    {64×64 single}       3    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       9    
    {64×64 single}       9    
    {64×64 single}       7    
    {64×64 single}       7    
    {64×64 single}       3    
    {64×64 single}       9    
    {64×64 single}       9    
    {64×64 single}       7    
    {64×64 single}       3    
    {64×64 single}       7    
      ⋮

Show the first nine augmented images.

imshow(imtile(minibatch.input(1:9)));

Figure contains an axes object. The hidden axes object contains an object of type image.

Input Arguments

collapse all

Augmented image datastore, specified as an augmentedImageDatastore object. The datastore specifies a MiniBatchSize number of observations in each batch, and a numObservations total number of observations.

Output Arguments

collapse all

Output data, returned as a table. When the datastore auimds reads a full batch of data, the table has MiniBatchSize rows. For the last batch of data in the datastore, if numObservations is not cleanly divisible by MiniBatchSize, then read returns a partial batch containing all of the remaining observations.

The first column of the table, "input", returns the data for each image. The table has a second column, "response", when auimds reads data of these types:

  • Image files containing labeled image data, when the file names are specified by an image datastore

  • A numeric array containing categorical labels or numeric responses

  • A table that includes one or more responses

Information about read data, returned as a structure array. The structure array can contain these fields.

Field NameDescription
Filename

Cell array of character vectors. Each element is a fully resolved path containing the path string, name of the file, and file extension for the corresponding image. This field is present when auimds reads data from files specified by an image datastore.

FileSize

Numeric vector. Each element is the total file size, in bytes, of the corresponding image. For MAT-files, FileSize is the total number of key-value pairs in the file. This field is present when auimds reads data from files specified by an image datastore.

Label

Categorical vector. Each element is the category label of the corresponding image. This field is present when auimds reads labeled data from files specified by an image datastore.

MiniBatchIndices

Numeric vector. Each element is the index of the input image in the array. This field is present when auimds reads data from numeric arrays.

Version History

Introduced in R2018a