convert grayscale to rgb

3 views (last 30 days)
evangeline
evangeline on 22 Jan 2014
Answered: DGM on 19 Apr 2022
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

Walter Roberson
Walter Roberson on 22 Jan 2014
rgbimage = grayimage(:,:,[1 1 1]);
  3 Comments
evangeline
evangeline on 22 Jan 2014
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]); ?
Walter Roberson
Walter Roberson on 22 Jan 2014
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

Community Treasure Hunt

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

Start Hunting!