convert grayscale to rgb

I want to convert a grayscale image to rgb, but I don't want to use the gray2rgb command, I know that the input matrix is 2D, but the output image should be 3D, but I just don't know how to do it.. I dont know how to map the 2D matrix values to 3D matrix values...

 Accepted Answer

rgbimage = grayimage(:,:,[1 1 1]);

3 Comments

It changes the 2D matrix into a 3D matrix in which all three planes are the same. This will look exactly the same as the grayscale image, but it will be a truecolor (RGB) image.
If you change the 1 then you will get an error about subscripts needing to be positive integers, or you will get an error about subscript being out of range.
The code can also be written as
repmat(grayimage, 1, 1, 3)
and is functionally equivalent to
cat(3, grayimage, grayimage, grayimage)
thank you so much, I just have another question, I want to check each pixel of the 2D matrix, and switch-case the value, like if its between 1 and 50 , give a specific color to it in the 3D matrix according to the that pixel value, how can I do this mapping? I want to determine the r and g and b values of the color in output matrix myself, now how can I do this with rgbimage = grayimage(:,:,[1 1 1]); ?
grayslice (second form, supplying a vector of values), followed by ind2rgb() to do the conversion to an RGB image.

Sign in to comment.

More Answers (1)

DGM
DGM on 19 Apr 2022
Depending on what the goals are, there are various ways to interpret the question. The following link includes demonstrations of converting a single-channel image to a 3-channel image via:
  • channel replication (like above)
  • channel filling/deletion and potential hue adjustment
  • uniform and nonuniform colorization methods
  • color mapping
I imagine most needs are met with replication or colormapping, but I like generalizable answers to be somewhat comprehensive.

Categories

Find more on Convert Image Type in Help Center and File Exchange

Tags

Asked:

on 22 Jan 2014

Answered:

DGM
on 19 Apr 2022

Community Treasure Hunt

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

Start Hunting!