MATLAB Answers

how to convert grey image to RGB

조회 수: 84(최근 30일)
mohd akmal masud
mohd akmal masud 9 Jan 2021
댓글: Image Analyst 11 Jan 2021
Hi all,
i have 60 slice grey image. how want to convert to RGB image?
as attached is my grey image (grey.jpg). rgb.jpg is from internet what i want like.
this is my coding, but got error.
P = zeros(103, 103, 60);
for K = 1 : 60
petname = sprintf('I%d.dcm', K_file);
P(:,:,K) = dicomread(petname);
scale = 130/103 ;
Pi(:,:,K) = imresize(P(:,:,K),scale) ; % where P is your 103*103 3D matrix
rgbImage = gray2rgb(Pi);
this is my function
function [Image]=gray2rgb(Image)
%Gives a grayscale image an extra dimension
%in order to use color within it
[m n]=size(Image);
Unable to perform assignment because the size of the left side is 130-by-7800 and the size of
the right side is 130-by-130-by-60.
Error in gray2rgb (line 6)
Error in sliderspect1 (line 12)
rgbImage = gray2rgb(Pi);
I THINK MY function gray2rgb wrong.
can some one help me?


Jan 9 Jan 2021
Your Pi is a [130 x 130 x 60] matrix, but your function gray2rgb() expects a 2D matrix as input. It is not clear how you want to convert the 60 layers of the image data to RGB channels.
Maybe you want:
[r,c,m] = size(Pi);
rgbImage = repmat(reshape(Pi / 255, [r, c, 1, m]), [1, 1, 3, 1]);
  댓글 수: 2
Jan 10 Jan 2021
Yes, of course the image is grey, because the original images contain the grey level information only. If the value of each pixel of the input is used for all 3 RGB channels, the output looks grey also.
Which information do you want to use to define the colors?

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 10 Jan 2021
function rgbImage = gray2rgb(grayImage)
cmap = jet(256); % Or whatever one you want.
rgbImage = ind2rgb(grayImage, cmap); % Convert gray scale image into an RGB image.
  댓글 수: 3
Image Analyst
Image Analyst 11 Jan 2021
To convert a gray scale image to an RGB image, it must have one channel. You have 60 channels, like either it's a hyperspectral image with 60 color channels, or a volumetric image, like from CT or MRI, with 60 slices. Neither of those can be converted into an RGB image. You either need three channels, or one channel, not 60.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by