2012年2月11日
摘要: 最近一直在做Windows Mobile的开发,需要用到从摄像头读取图像,并能够处理每一帧。 但遇到这样一个问题,从摄像头读取的图像原始格式为YV12,要实现预览必须转化为RGB24。Dshow中有一些filter应该也能完成,但自己对Dshow了解不多,偷偷懒,找找其他办法:-) 在http://seac.blogchina.com/seac/583337.html上找到一篇关于YV12转RGB24的文章,采用的是完全查表法,把它封装到Native DLL中,每获取到一帧后,P/invoke这个方法进行转化。但有这样几个问题:1,频繁的P/Invoke是项耗时的操作;2,图像反转;3,经转化 阅读全文
posted @ 2012-02-11 16:28 carekee 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: void yv12_to_rgb565_c2(int32_t*t_ptr,uint8_t*x_ptr,uint8_t*y_ptr) { intx,y; uint8_t*u_ptr=y_ptr+176672; uint8_t*v_ptr=u_ptr+49984; for(y=0;y<288;y+=2) { intr[2],g[2],b[2]; r[0]=r[1]=g[0]=g[1]=b[0]=b[1]=0; for(x=0;x<352;x+=2) { intrgb_y; intb_u0=B_U_tab[u_ptr[0]]; intg_uv0=G_U_tab[u_ptr[0]]+G_V 阅读全文
posted @ 2012-02-11 16:22 carekee 阅读(670) 评论(0) 推荐(0) 编辑
摘要: //最直接的(没有任何优化,直接按公式转换!)把RGB24转成YV12的算法//参数:宽(w)和高(h)必须是4对齐的!不然会有错误!//输出结果YV12格式://y01y02y03y04--------//------------//------------//------------//------------//------------//------------//------------//v01v02----------//------------//u01u02----------//------------typedefstructtagRGB24{unsignedcharb; 阅读全文
posted @ 2012-02-11 16:21 carekee 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 前段时间,公司有个嵌入式的项目,我做的其中有一项是yuv视频到rgb888图像的转换。我主要是参照一位牛人的博客做的:http://blog.csdn.net/housisong/archive/2007/10/31/1859084.aspx YUV422p To RGB888 C语言版本接口说明:[cpp:showcolumns] view plaincopyprint?·········10········20· 阅读全文
posted @ 2012-02-11 16:18 carekee 阅读(5328) 评论(0) 推荐(0) 编辑