YUV422 to RGB 转换

来源:互联网 发布:php 字符型转变为数值 编辑:程序博客网 时间:2024/05/29 07:04
void YUV422ToRGB(int width,int height,unsigned char* yuvin,unsigned char*rgbout){int col,row;int Y,U,V ;int red,blue,green;int idx,rowptr,colhalf;bool result=false;for(  row=0 ; row< height; row++ )  //; row<height; row++{idx=row*3*width;rowptr=row*width;for( col=0; col<width; col++ )  //; col<width; col++){colhalf= col>>1;//col shr 1;Y=yuvin[rowptr+col];U=yuvin[rowptr+colhalf+width*height-(int)(row*width/2)];V=yuvin[rowptr+colhalf+width*height-(int)(row*width/2)+(int)(width*height/2)];red=(int)(Y+(U-128)*1.375);green=(int)(Y-(U-128)*0.34375-(V-128)*0.703125);blue=(int)(Y+(V-128)*1.734375);if( red>255 )  red=255else if (red<0)     red=0;if (green>255) green=255else if( green<0 ) green=0;if (blue>255 ) blue=255else if( blue<0 ) blue=0;rgbout[idx]= (unsigned char)(red);idx++;//inc(idx);rgbout[idx]=(unsigned char)(green);idx++;//inc(idx);rgbout[idx]=(unsigned char)(blue);idx++;//inc(idx);}}      }