当前位置: 技术问答>linux和unix
linux下摄像头驱动问题
来源: 互联网 发布时间:2017-04-07
本文导语: 最近在做摄像头驱动,发现采集到的图像数据通urb的buffer进行传输,请问如何从buffer中解析出一张完成的图像帧呢,请高手指导指导,非常感谢!! | 你自己的摄像头程序里面可以设置啊,摄像头时一...
最近在做摄像头驱动,发现采集到的图像数据通urb的buffer进行传输,请问如何从buffer中解析出一张完成的图像帧呢,请高手指导指导,非常感谢!!
|
你自己的摄像头程序里面可以设置啊,摄像头时一帧一帧的采集的吧,采集的时候也是一帧一帧的存的,你可以在它存储一帧的时候就读取出来,这个时候就是一帧了。如此循环下去,不就是采集一帧,处理一帧·····
|
没采集一次就是一帧的图像。比如说你的摄像头分辨率是640*480,如何采集上来的数据是YUV格式的,那么你的buffer[640*480*3]这些数据就是一帧。但是如果你在程序里面直接把这些数据写到一个.txt文件里面必然全都是乱码,你可以把数据写到图像的格式,然后就可以打开采集到的图像了。不要妄想采集到的数据直接写到一个文件里,然后就看到数据了。这是图像数据的格式
|
这个和具体的采集图像的设备有关系,也可以通过编写应用程序试出来,这样麻烦。比较常见的就是YUV,JPEG,MPEG等这样的格式
|
FILE *file=open("/picture.jpeg","wb");//在根目录下会创建个jpeg格式的文件
fwrite(buffers[0].start,一帧的大小,1,file);
buffers[0].start//为你映射到用户空间帧缓冲的首地址
1 //位移量,一个字节一个字节的写