YUV420 in RGB Farbkonvertierungsfehler
ich binconverting
ein Bild inYUV420
formatieren aufRGB
Bild inopencv
aber ich bekomme eineOrange
Farbbild nachherconversion.
Ich habe folgenden Code verwendet, um das zu tun. Gibt es ein Problem in meinem Code?
int step = origImage->widthStep;
uchar *data = (uchar *)origImage->imageData;
int size = origImage->width * origImage->height;
IplImage* img1 = cvCreateImage(cvGetSize(origImage), IPL_DEPTH_8U, 3);
for (int i = 0; i<origImage->height; i++)
{
for (int j=0; j<origImage->width; j++)
{
float Y = data[i*step + j];
float U = data[ (int)(size + (i/2)*(step/2) + j/2) ];
float V = data[ (int)(size*1.25 + (i/2)*(step/2) + j/2)];
float R = Y + (int)(1.772f*V);
float G = Y - (int)(0.344f*V + 0.714f*U);
float B = Y + (int)(1.402f*U);
if (R < 0){ R = 0; } if (G < 0){ G = 0; } if (B < 0){ B = 0; }
if (R > 255 ){ R = 255; } if (G > 255) { G = 255; } if (B > 255) { B = 255; }
cvSet2D(img1, i, j,cvScalar(B,G,R));
}
}
origImage -> YUV-Bild,
img1 -> RGB Bild,
http://upload.wikimedia.org/wikipedia/en/0/0d/Yuv420.svg
Gibt es eine opencv Funktion die apixel
im YUV420-Format auf entsprechendes RGB-Pixel? (nicht ganzes Bild)