How to change 1 channel image to 3 channel

141 views (last 30 days)
evianita dewi
evianita dewi on 13 Dec 2019
Answered: DGM on 2 May 2022
I have several grayscale images with channel 1, then I want to convert it to RGB channel 3 image, how do I change it?

Accepted Answer

Image Analyst
Image Analyst on 13 Dec 2019
Try cat() to stack the gray scale image into 3 slices (color channels):
rgbImage = cat(3, grayImage, grayImage, grayImage);
It will be an RGB image though the only colors will be gray since there is no difference between the three different color channels. It will be a 3-D image with the z-direction (third index) being the color channel index.

More Answers (1)

DGM on 2 May 2022
Alternative to using cat(), the same can also be done a couple other ways.
You can use repmat()
rgbpict = repmat(graypict,[1 1 3]);
... or you can even use basic indexing:
rgbpict = graypict(:,:,[1 1 1]);

Community Treasure Hunt

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

Start Hunting!

Translated by