How to change the color of a 16bit image from Grays to a color mode?

14 visualizaciones (últimos 30 días)
Hi
I have an image which is 16bit. It is grays. I wonder how can I change it to a specific color, e.g, Yellow? I tried to convert it to RGB first, but somehow [I,map]=imread(16bitimage) doesn't give the colormap.
Thanks a lot

Respuesta aceptada

Shirley
Shirley el 12 de Sept. de 2019
Editada: Walter Roberson el 12 de Sept. de 2019
I found that this works for me. Suggestions are more than welcome. Thanks
1)self define a colormap, e.g
%Yellow [1 1 0]
YellowColormap=zeros(256,3);
for i=1:256
YellowColormap(i,1) = (i-1)/256;
YellowColormap(i,2) = (i-1)/256;
end
2)X=imread(16bit image);
imshow(X,'DisplayRange',[0 65535],'Colormap',YellowColorMap)
  2 comentarios
Image Analyst
Image Analyst el 13 de Sept. de 2019
Or, vectorized:
YellowColormap = gray(256);
YellowColormap(:,3) = 0;
Shirley
Shirley el 13 de Sept. de 2019
That is clever! I didn't know this function before. Thanks a lot!

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 12 de Sept. de 2019
image_as_rgb = repmat(image_as_gray, [1 1 3]);
Now you can manipulate image_as_rgb .
Or you might prefer to use ind2rgb() -- though to do that you need to define a colormap that has as many entries as max(image_as_gray)+1, which for a 16 bit image could be as many as 65536 entries.
  5 comentarios
Walter Roberson
Walter Roberson el 15 de Sept. de 2019
yellow_image = cat(3, repmat(mat2gray(image_as_gray), [1 1 2]), zeros(size(image_as_gray)));
imshow(yellow_image)
You have a uint16 image, but your data range is only a small fraction of uint16.
Shirley
Shirley el 17 de Sept. de 2019
Thanks! It works now after I adjusted the image

Iniciar sesión para comentar.

Categorías

Más información sobre Orange en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by