VideoNet的程序 调试过程

在调试VideoNet程序时遇到YUY2格式到RGB转换的问题,通过添加YUY2_RGB2_ljh函数解决了崩溃问题。接着发现图像显示倒立,使用了两种方法进行图像翻转,最终通过SwapArrayljh2函数成功修正图像方向。完整的修复代码已上传至CSDN资源库供下载。
摘要由CSDN通过智能技术生成

在进行VideoNet的程序(在http://www.codeproject.com/Articles/7573/VideoNetb下载的)学习中,发现在进行调试时,

1. 运行到 ConvertRGB2YUV 函数时,在             

*y++=( RGB2YUV_YR[*r] +RGB2YUV_YG[*g]+RGB2YUV_YB[*b]+1048576)>>16; 出down掉!

     崩溃! 程序每次到这里崩溃,我也崩溃了!后来反复查网上帖子,有几个说的还行,总体说来,还是没有根本解决:出现这个问题的原因是摄像头采集到的数据是YUY2 的格式, 而ConvertRGB2YUV函数只认识RGB 的格式,所以需要将 YUY2的数据转换成RGB 的格式,于是又疯狂的搜索,终于找到这个宝贵的函数:

/************************************************************************/

/* 函数名称: YUY2_RGB2_ljh

/* 参数:unsigned char *YUY2buff,unsigned char  *RGBbuff,long dwSize

YUY2buff   原始待转换的 YUY2 的数据

RGBbuff     转换后的 RGB 数据

dwSize     数组大小

 

  /* 返回值:void

  /* 作者:ljhua

  /* 时间:2012-08-11

/************************************************************************/

void YUY2_RGB2_ljh(unsignedchar *YUY2buff,unsigned char  *RGBbuff,longdwSize)

{

       //

       //C = Y - 16

       //D = U - 128

       //E = V - 128

       //R = clip(( 298 * C          + 409 * E + 128) >> 8)

       //G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)

       //B = clip(( 298 * C + 516 * D           + 128) >> 8)

       unsigned char *orgRGBbuff = RGBbuff;

       for( lon

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值