convert BGRA8 image format to RGB format

13 visualizzazioni (ultimi 30 giorni)
L
L il 12 Ott 2021
Commentato: L il 16 Ott 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?

Risposta accettata

Jan
Jan il 12 Ott 2021
Do you have the pixels values as UINT8 array already? Then:
RGB = BGRA8(:, :, [3, 2, 1])
  7 Commenti
L
L il 13 Ott 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 il 13 Ott 2021
Modificato: L il 13 Ott 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);

Accedi per commentare.

Più risposte (1)

Cam Salzberger
Cam Salzberger il 13 Ott 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

Categorie

Scopri di più su Specialized Messages in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by