How to change image size from 224 x 224 x 1 to 224 x 224 x 3

18 views (last 30 days)
i have images with 224 x 224 x 1 size i want to convert it to 224 x 224 x 3

Accepted Answer

Kevin Holly
Kevin Holly on 4 Nov 2022
Img = rand(224,224,1);
imshow(Img)
new(:,:,1) = Img;
new(:,:,2) = Img;
new(:,:,3) = Img;
imshow(new)
size(Img)
ans = 1×2
224 224
size(new)
ans = 1×3
224 224 3
  2 Comments
abdullah al-dulaimi
abdullah al-dulaimi on 4 Nov 2022
broth i have path with 200 images , how can i convert all images in one time
Kevin Holly
Kevin Holly on 4 Nov 2022
Edited: Kevin Holly on 4 Nov 2022
folder = uigetdir;
files = dir(fullfile(folder,'*.png'));
for ii = 1:length(files)
grayImage = imread(fullfile(folder,files(ii).name));
rgbImage = cat(3, grayImage, grayImage, grayImage);
imwrite(rgbImage,[fullfile(folder,files(ii).name) '_rgb.png'])
end

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 4 Nov 2022
I recommend that you consider using an imageDatastore followed by an augmentedImageDatastore -- the augmented store can automatically resize your images and can automatically convert to RGB or grayscale.
  2 Comments
Walter Roberson
Walter Roberson on 7 Dec 2023
unzip('MerchData.zip');
imds = imageDatastore('MerchData', ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
augds = augmentedImageDatastore([224 224], imds, 'ColorPreprocessing', 'gray2rgb');
[imdsTrain,imdsValidation] = splitEachLabel(augds,0.7);
and so on.

Sign in to comment.

Categories

Find more on Read, Write, and Modify Image in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!