电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

USB摄像头采集VIP免费

USB摄像头采集_第1页
1/16
USB摄像头采集_第2页
2/16
USB摄像头采集_第3页
3/16
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; //1.open framebuffer fb = open("/dev/fb0",O_RDWR); if (fb < 0) { printf("open /dev/fb0 error!\n"); return -1; } //2.get fb information ioctl(fb, FBIOGET_VSCREENINFO, &fb_var); w = fb_var.xres; h = fb_var.yres; bpp = fb_var.bits_per_pixel; printf("screen information: %d * %d, bpp :%d\n",w,h,bpp); //3.get framebuffer address fbmem = mmap(0, w*h*bpp/8, PROT_WRITE|PROT_READ, MAP_SHARED,fb,0); return 0; } 之前定义了全局变量, static int fb = -1; //fb0文件描述符 static int w, h, bpp; //显示器长度,宽度,每像素多少位 static short *fbmem; 这里主要有一个函数mmap(0, w*h*bpp/8, PROT_WRITE|PROT_READ, MAP_SHARED,fb,0...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

USB摄像头采集

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部