convert gray image back to rgb

625 次查看(过去 30 天)
how to back grat to rgb gray2rgb function not found
  3 个评论
AliHdr
AliHdr 2021-10-30
I have done this but i can not use imwrite anymore
there is and error
<<Data with 9 components not supported for JPEG files.>>
how can I overwrite new rgb file with old gray file?
Image Analyst
Image Analyst 2021-10-31
@AliHdr evidently JPG can't store multispectral or volumetric images. Either use a mat file or save each slice as its own image.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2013-3-14
If you have a color map - a mapping of what intensity should go to what color, like what imread() or rgb2ind() can give you - then you can use ind2rgb.
rgbImage = ind2rgb(grayImage, colormap);
Otherwise use
rgbImage = cat(3, grayImage, grayImage, grayImage);
grayImage needs to be in the range 0-255 uint8 if you want to display it.
  3 个评论
Alexandar
Alexandar 2022-7-1
What do you mean by create a colormap and how can you do it within the scales that you'd like?
Image Analyst
Image Analyst 2022-7-1
@Alexandar There are a bunch of built-in colormap functions such as hsv, turbo, and jet. Or you can make up your own 256 by 3 matrix with values in the range 0-1.
To apply the colormap to the data range you want, you can use the clim or caxis() function.

请先登录,再进行评论。

更多回答(3 个)

Shaun VanWeelden
Shaun VanWeelden 2013-3-14
Alternatively
rgb=img(:,:,[1 1 1]); does the same thing as Jan's, but is a little shorter maybe and easier to remember. img is your image you want to convert to rgb obviously
  4 个评论
Image Analyst
Image Analyst 2016-11-18
No, that throws an error if img is a gray scale image since there is no third dimension for gray scale images.

请先登录,再进行评论。


Jan
Jan 2013-3-14
Asking Google for "Matlab gray2rgb" would be a good idea.
But a general method is:
RGB = cat(3, Gray, Gray, Gray);
  4 个评论
john
john 2022-1-10
what do u mean by use double? its giving me error when i use imshow
Walter Roberson
Walter Roberson 2022-7-2
sample_logical_2d = rand(64,80) > 0.8;
imshow(sample_logical_2d)
sample_logical_3d = cat(3, sample_logical_2d, sample_logical_2d, sample_logical_2d );
try
imshow(sample_logical_3d)
catch ME
fprintf('oooo! imshow did not like 3D logical!')
disp(ME)
end
oooo! imshow did not like 3D logical!
MException with properties: identifier: 'images:imageDisplayValidateParams:expected2D' message: 'If input is logical (binary), it must be two-dimensional.' cause: {} stack: [7×1 struct] Correction: []
sample_double_3d = double(sample_logical_3d);
imshow(sample_double_3d)

请先登录,再进行评论。


shehbaz Ali
shehbaz Ali 2013-3-14
This is not possible to to convert black and white image to gray image. Because you don't what will be colors of any pixel for rgb picture.
  5 个评论
Walter Roberson
Walter Roberson 2023-6-14
You cannot gain information when you convert black and white to grayscale, or grayscale to color -- but you can create the grayscale or color image with the same amount of information.
DGM
DGM 2023-6-15
That's a good way to put it. :)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by