【发布时间】:2014-05-16 08:05:09
【问题描述】:
我是convertingYUV420 格式的图像,RGBopencv 中的图像,但我在conversion. 之后得到了Orange 彩色图像,我使用以下代码来执行此操作。我的代码有什么问题吗??
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 图像,
img1 -> RGB 图像,
http://upload.wikimedia.org/wikipedia/en/0/0d/Yuv420.svg
是否有任何 opencv 函数可以将 YUV420 格式的 pixel 转换为相应的 RGB 像素? (不是整张图)
【问题讨论】:
标签: c opencv image-processing color-scheme yuv