在图像采集中,经常需要将YUV格式转换成RGB格式,本文例举YUV转RGB的算法
void yuvtorgb ( double *rgb,unsigned char *yuv)
{
int i;
rgb[0] = 1.0 * yuv[0] + 0 + 1.402 * (yuv[2] - 128); // r
rgb[1] = 1.0 * yuv[0] - 0.34413 * (yuv[1] - 128) - 0.71414 * (yuv[2]-128); // g
rgb[2] = 1.0 * yuv[0] + 1.772 * (yuv[1]-128) + 0; // b
for(i=0;i<3;i++)
{
if(rgb[i]>255)
rgb[i] = 255;
if(rgb[i]<0)
rgb[i] = 0;
}
}
void yuv422convertrgb(unsigned char *yuv_ptr,unsigned char *rgb_ptr,int width,int height)
{
int i,j,k;
int framesize_rgb;
double rgb[3];
unsigned char yuv[3];
unsigned char *prgb,*pyuv;
framesize_rgb = width * height * 3;
prgb = rgb_ptr;
pyuv = yuv_ptr;
prgb = rgb_ptr + framesize_rgb - width * 3;
pyuv++;
f