Video4Linux(简V4L)是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡,视频捕捉卡和USB摄像头等.对于USB口摄像头,其驱动程序中需要提供基本的I/O操作接口函数open,read,write,close的实现.对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioct1的实现等,并把它们定义在struct file_operations中.这样当应用程序对设备文件进行诸如open,close,read,write等系统调用操作时,Linux内核将通过file_operations结构访问驱动程序提供的函数.例如,当应用程序对设备文件执行读操作时,内核将调用file_operations结构中的read函数.在系统平台上对USB口数码摄像头驱动,首先把USB控制器驱动模块静态编译进内核,使平台中支持USB接口,再在需要使用摄像头采集时,使用insmode动态加载其驱动模块,这样摄像头就可正常工作了,接着进行了下一步对视频流的采集编程.
3.2 Video4Linux下的摄像头采集编程
在USB摄像头被驱动后,只需要再编写一个对视频流采集的应用程序就可以了.根据嵌入式系统开发特征,先在宿主机上编写应用程序,再使用交叉编译器进行编译链接,生成在目标平台的可执行文件.宿主机与目标板通信采用打印终端的方式进行交叉调试,成功后移植到目标平台.本文编写采集程序是在安装Linux操作系统的宿主机PC机上进行的,下面是具体论述.
(1)程序中定义的数据结构
struct voide_capability grab_cap;
struct voide_picture grab_pic;
struct voide_mmap grab_buf;
struct voide_mbuf grab_vm;
这些数据结构都是由Video4Linux支持的,它们的用途如下:
*video_capability包含摄像头的基本信息,例如设备名称,支持的最大最小分辨率,信号源信息等,分别对应着结构体中成员变量name[32],maxwidth,maxheight,minwidth,minheight,channels(信号源个数),type等;
*voide_picture包含设备采集图像的各种属性,如brightness(亮度),hue(色调),contrast(对比度),whiteness(色度),depth(深度)等;
*video_mmap用于内存映射;
*voido_mbuf利用mmap进行映射的帧信息,实际上是输入到摄像头存储器缓冲中的帧信息,包括size(帧的大小),frames(最多支持的帧数),offsets(每帧相对基址的偏移).
程序中用到的主要系统调用函数有:open("/dev/voideo0",int flags),close(fd),mmap(void *start,size_t length,int prot,int flags,int fd,off_t offset),munmap(void *start,size_tlength)和ioctl(int fd,int cmd,…).
前面提到Linux系统中把设备看成设备文件,在用户空间可以通过标准的I/O系统调用函数操作设备文件,从而达到与设备通信交互的目的.当然,在设备驱动中要提供对这些函数的相应支持.这里说明一下ioctl(int fd,int cmd,…)函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序对设备的控制命令,省略号一般是一个表示类型长度的参数,也可没有.
(2)采集程序实现过程
首先打开视频设备,摄像头在系统中对应的设备文件为/dev/video0,采用系统调用函数grab_fd=open("/dev/video0",O_RDWR),grab_fd是设备打开后返回的文件描述符(打开错误返回-1),以后的系统调用函数就可使用它来对设备文件进行操作了.接着,利用ioct1(grab_fd,VIDIOCGCAP,&grab_cap)函数读取struct video_capability中有关摄像头的信息.该函数成功返回后,这些信息从内核空间拷贝到用户程序空间grab_cap各成员分量中,使用printf函数就可得到各成员分量信息,例如printf("maxheight=%d",grab_fd.maxheight)获得最大垂直分辨率的大小.不规则用ioct1(grab_fd,VIDIOCGPICT,&grab_pic)函数读取摄像头缓冲中voideo_picture信息.在用户空间程序中可以改变这些信息,具体方法为先给分量赋新值,再调用VIDIOCSPICT ioct1函数,例如:
- usb摄像头打不开 > usb摄像头
-
usb摄像头
下载该文档 文档格式:DOC 更新时间:2005-11-02 下载次数:0 点击次数:1文档基本属性 文档语言: Simplified Chinese 文档格式: doc 文档作者: zc 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 504 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- DOC格式下载
- 更多文档...
-
上一篇:小学生拼音报(低)bianjibu@xxspyb.com
下一篇:摄像头院米奇摄像头做得非常
点击查看更多关于usb摄像头打不开的相关文档
- 您可能感兴趣的
- usb摄像头万能驱动 usb高清摄像头 松翰usb摄像头驱动 摄像头usb无法识别 usb摄像头 usb摄像头监控软件 usb摄像头驱动 usb摄像头驱动下载 usb摄像头安防监控
- 大家在找
-
- · 移动通信课件第四版
- · 安川伺服驱动器接线图
- · 中山cm摩托车机头
- · 不可见光的应用
- · 三星手机格式化指令
- · 中式烹饪技艺
- · javaweb开发详解下载
- · 翻唱女歌手
- · 高硬度工件加工
- · 交大邮箱登陆系统
- · 2011国青男篮名单
- · cad木马
- · 仓库管理毕业论文
- · 时钟电脑桌面壁纸高清
- · 福建师范大学大学物理实验
- · cdr软件下载中文版
- · 二年级班会教案
- · 广告设计师
- · 约分ppt课件
- · 果蔬加工器切片切丝
- · 加油站雨棚mail
- · 北师大版七年级上册
- · 11sasa怎么看不了
- · 浮阀塔模拟
- · autocad2007库
- · 微星杀毒软件
- · 服装缝纫裁剪入门基础
- · 李良荣启悟学校
- · btfans.3322.org
- · 外企面试英文问题
- 赞助商链接