convert BGRA8 image format to RGB format

11 visualizaciones (últimos 30 días)
L
L el 12 de Oct. de 2021
Comentada: L el 16 de Oct. de 2021
Is there a built-in function for conversion of BGRA8 image to RGB image? If there is no available function for the conversion, is there a way to make this conversion?

Respuesta aceptada

Jan
Jan el 12 de Oct. de 2021
Do you have the pixels values as UINT8 array already? Then:
RGB = BGRA8(:, :, [3, 2, 1])
  7 comentarios
L
L el 13 de Oct. de 2021
I have accessed the field again in the Command Window, but my RGB image is wrong.
Maybe there is a problem with the array conversion?
L
L el 13 de Oct. de 2021
Editada: L el 13 de Oct. de 2021
The issue with the structure is solved. The solution is to call the receive() function.
But, still there is a problem with the conversion from BGRA8 to RGB.
What can be the problem here?
Here is the screenshot, and the code. The BGRA8 image is 1010688x1 uint8 array.
msg = receive(sub);
img=msg.Data;
outImg = reshape(img, 672, 376, []);
outImg1=permute(outImg, [2 1 3 4]);
rgb=outImg1(:,:,[2 1 3]);
figure, imshow(rgb);

Iniciar sesión para comentar.

Más respuestas (1)

Cam Salzberger
Cam Salzberger el 13 de Oct. de 2021
Since the image data is coming out of a ROS message, you can use the ROS functions to extract the image from it:
Message object - readImage method
Message struct - rosReadImage function
-Cam

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by