因为有的图片处理在glsl里面不好搞,需要opencv这种一些比较优秀的处理库,所以有了这一次的实验。
实验目的:为了寻找一种比较好的不在glsl里面实时处理摄像头数据的方式。
数据采集
camera通过SurfaceTexture采集数据
处理渲染
1.将NV21数据(yuv420sp)通过opencv转为bitmap,通过Cavas绘制,30fps左右,可以查看opencv的demo
2.将NV21数据通过libyuv转为rgb,然后用OpenGLES渲染,10fps左右,卡顿明显
3.将NV21数据通过openCv转为rgb,然后用OpenGLES渲染,50fps左右
时间有限,下面几种没验证
4.直接操作NV21数据,然后通过OpenGLES渲染,在glsl里面将yuv转为rgb,未验证,应该比上面的方式更快
5.处理部分数据,不一定每一帧都处理(这个不算实时流处理了)。可能这种方式稍微好一点了吧
实验代码:
https://github.com/ChinaZeng/CameraRenderDemo
有啥好的思路,希望指点一下。
网友评论