YUV422 to RGB 转换

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=255
			else if (red<0)     red=0;
			
			if (green>255) green=255
			else if( green<0 ) green=0;
			
			if (blue>255 ) blue=255
			else 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);

		}
	}      
}

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值