From separate channels to RGB

4 visualizaciones (últimos 30 días)
Claudio Esposito
Claudio Esposito el 2 de Feb. de 2022
Comentada: Stephen23 el 2 de Feb. de 2022
Hello everyone,
I have images in single bands ( Red, Blue and Green) and I need to combine them to obtain an RGB image.
R = imread('red.png');
G = imread('green.png');
B = imread('blue.png');
RGB = cat(3,R,G,B);
I wrote this code: how can I write and save the so obtained RGB image?
Thanks for your kind help.

Respuesta aceptada

Stephen23
Stephen23 el 2 de Feb. de 2022
Editada: Stephen23 el 2 de Feb. de 2022
I am guessing that the image files are actually Truecolor RGB (with all channels identical) rather than true Grayscale (a sadly all-too-common mixup made by many apps and users), in which case this should work:
RGB = cat(3,R(:,:,1),G(:,:,1),B(:,:,1));
imwrite(RGB, 'rgb.png');
Note that this does not scale/weight the channels!
  5 comentarios
Claudio Esposito
Claudio Esposito el 2 de Feb. de 2022
I was just trying what would have happen because R-G-B seems too reddish purple in colour.
Stephen23
Stephen23 el 2 de Feb. de 2022
"I was just trying what would have happen because R-G-B seems too reddish purple in colour."
You might need to consider this:

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 2 de Feb. de 2022
imwrite(RGB, 'rgb.png');
  1 comentario
Claudio Esposito
Claudio Esposito el 2 de Feb. de 2022
Thank you for your replying.
I already tried that, but Matlab displays this error:
Error using writepng (line 23)
PNG image data must be either MxN or MxNx3.
Error in imwrite (line 566)
feval(fmt_s.write, data, map, filename, paramPairs{:});
Error in RGB_conversion (line 14)
imwrite(RGB, 'rgb.png')

Iniciar sesión para comentar.

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by