linux摄像头驱动

linux摄像头驱动

ID:30883740

大小:52.00 KB

页数:7页

时间:2019-01-03

linux摄像头驱动_第1页
linux摄像头驱动_第2页
linux摄像头驱动_第3页
linux摄像头驱动_第4页
linux摄像头驱动_第5页
资源描述:

《linux摄像头驱动》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.1.Video4linux1.1概述V4L是Linux的影像串流系统与嵌入式影像系统的基础。Linux在TV、多媒体上的应用是目前相当热门的研究领域,而其中最关键的技术则是Linux的V4L。V4L是Linuxkernel里支持影像设备的一组APIs,配合适当的摄像头与摄像头驱动程序,可以实现影像采集、AM/FM无线广播、影像CODEC、频道切换等功能。1.2一般操作流程(1)打开视频设备;(2)读取设备信息;(3)必要时修改设备当前设置;(4)视频采集,有两种方法:    a.内存映射   b.直接读取设备(5)处理采集的视频;(6)关闭视频设备;1.3常用数据结构编写代码过程中

2、,常用的结构体以及应用如下:(1)video_capability包含设备的基本信息(设备名称、支持的最大最小分辨率、信号源信息等),包含的分量:•name[32]  //设备名称•maxwidth,maxheight,minwidth,minheight•Channels//信号源个数•type   //是否能capture,彩色还是黑白,是否能裁剪等等。值如VID_TYPE_CAPTURE等(2)video_picture设备采集的图象的各种属性•brightness//0~65535•hue •colour •contrast ...•whiteness •depth//24•

3、palette//VIDEO_PALETTE_RGB24(3)video_channel        关于各个信号源的属性   ·Channel//信号源的编号   ·name[32]   ·tuners   ·Type    VIDEO_TYPE_TV

4、IDEO_TYPE_CAMERA   ·Norm制式(4)video_window包含关于capturearea的信息   ·x、ywindows中的坐标.   ·width   捕捉图像的宽度   ·height  捕捉图像的高度   ·chromakeyAhostorderRGB32valueforthechromakey. 

5、  ·flags     标志符号   ·clips     Alistofclippingrectangles.(Setonly)   ·clipcount   Thenumberofclippingrectangles.(Setonly)(5)video_mbuf  利用mmap进行映射的帧的信息     ·size每帧大小     ·Frames最多支持的帧数     ·Offsets每帧相对基址的偏移(6)video_buffer  最底层对buffer的描述     ·*baseBase缓冲区的物理地址     ·height帧缓冲区的高     ·width帧缓冲区的宽 

6、    ·depth帧缓冲区的深度     ·bytesperline(7)structv4l2_file_operationssoc_camera_fops={.owner=THIS_MODULE,.open=soc_camera_open,.release=soc_camera_close,.ioctl=video_ioctl2,.read=soc_camera_read,.mmap=soc_camera_mmap,.poll=soc_camera_poll,};...其中soc_camera_open,soc_camera_close是打开和关闭视频采集设备;soc_camer

7、a_read,是读取视频图像;视频驱动主要的控制接口都是通过ioctl来实现的,如图像的格式、亮度、色度等信息都是通过ioctl函数获取和设置的。1.4具体操作步骤(1)打开视频:Open(”/dev/video0”,O_RWONLY);关闭视频设备用close(”/dev/video0”,O_RWONLY);(2)读video_capability中信息ioctl(vd->fd,VIDIOCGCAP,&(vd->capability))成功后可读取vd->capability各分量。(3)读video_picture中信息ioctl(vd->fd,VIDIOCGPICT,&(vd-

8、>picture));(4)改变video_picture中分量的值先为分量赋新值,再调用VIDIOCSPICTvd->picture.colour=65535;ioctl(vd->fd,VIDIOCSPICT,&(vd->picture);(5)初始化channel必须先做得到vd->capability中的信息for(i=0;icapability.channels;i++){    vd->channel[i].channel=i; if(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。