As I said I tried with RGB but it doesn't allow me to capture with CV while streaming, but when I use YUV it does. I found this answer and that's why I'm trying with this approach:
In meantime I managed to get black and white jpeg image using following code:
public static byte[] ConvertYUVToJPEG(byte[] yPlane, byte[] uPlane, byte[] vPlane, int width, int height)
{
Color32[] rgbData = new Color32[width * height];
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
int yIndex = y * width + x;
byte Y = yPlane[yIndex];
// Convert Y to RGB (black and white)
byte R = Y;
byte G = Y;
byte B = Y;
rgbData[yIndex] = new Color32(R, G, B, 255);
}
}
Texture2D texture = new Texture2D(width, height, TextureFormat.RGBA32, false);
texture.SetPixels32(rgbData);
texture.Apply();
//FlipTextureVertically(texture);
byte[] jpegData = texture.EncodeToJPG();
Debug.Log("JPEG image saved at output.jpg");
return jpegData;
}
Can you assist me with adapting this code for getting the colored image?