Grey Scale -> RGB images from augmentedImageSource

9 views (last 30 days)
Samir Gouin
Samir Gouin on 5 Nov 2020
Commented: Samir Gouin on 16 Nov 2020
Hi, I would like to convert grey scale images to [227 227 3]. I'm able to adjust the size using "auimds = augmentedImageSource(imageSize, trainingImages); " but I'm having trouble with converting to RGB (for use with Alex Net).
I've tried:
%grayimg=repmat(grayimg, 1, 1, 3);
%auimds = cat(3, auimds, auimds, auimds);
%auimds(:,:,[1 1 1]);
%RGB = auimds(3, auimds, auimds, auimds);
and the grey2rgb() method
Any suggestions?

Sign in to comment.

Answers (1)

Subhadeep Koley
Subhadeep Koley on 16 Nov 2020
You can use the ColorPreprocessing Name-Value pair of augmentedImageSource to achieve what you want.
imageSize = [227 227 3];
auimds = augmentedImageSource(imageSize, trainingImages, 'ColorPreprocessing', 'gray2rgb'); % 'trainingImages' is your image datastore
Also if your using MATLAB R2018a or above, you might want to use augmentedImageDatastore instead of the augmentedImageSource due to the Compatibility Considerations.
augmentedImageDatastore is a direct replacement of augmentedImageSource. Like below,
imageSize = [227 227 3];
auimds = augmentedImageDatastore(imageSize, trainingImages, 'ColorPreprocessing', 'gray2rgb'); % 'trainingImages' is your image datastore
  1 Comment
Samir Gouin
Samir Gouin on 16 Nov 2020
Thanks for your help! I am using version R2020a so I've implemented the second approach. Still getting a size error (please see pic). Any ideas?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!