USB 摄像头图像采集程序分析 本文是在Linux操作系统下实现对USB 摄像头的图像采集与显示的
由于操作系统已经有了 USB 摄像头的驱动,因此摄像头可以直接使用
USB 摄像头的数据采集和显示分为三个步骤:USB 摄像头采集数据;将采集的数据进行解码转换成 RGB 格式;利用 Framebuffer 将 RGB 数据显示在LCD 上
USB 摄像头图像采集属于 V4L2 编程,可以参考 Video for Linux Two API Specification 这个文档
我的USB 摄像头采集的数据格式是Jpeg 图片,像素是320*240,下一步工作是将 JPEG 图片转换成 RGB 格式
对Framebuffer 进行操作便可以显示RGB 图像,即可显示摄像头采集的图像了
多祯图片连续显示便可显示连续的画面
下面我将从后到前的顺序依次介绍这三个过程
首先是对Framebuffer 的编程实现对RGB 图像的显示
Framebuffer 在硬件上对应的就是手持设备的LCD,在PC 机上就是显示其了
在软件上就称为 Framebuffer 了,在Linux系统中,一个设备相当于一个文件,对文件的操作相当于对设备进行操作了,显示器对应的设备文件就是/dev/fb0
进行如下操作:le/dev ,查看设备文件,看是否有 fb0,如果有这个设备就可以进行下面的编程了
如果没有,需要修改一个文件,/boot/grub/menu
lst,在我们使用的那个系统增加如下参数,rgb = 0x317,设置为 1024*768 16 位色显示,然后重启便可以看到 fb0 了
第一步是对fb0 的初始化,读取 fb0 相关参数并得到内存映射地址
int init_fb (void) { //int fb; struct fb_var_screeninfo fb_var; //