- 5
- 0
- 约 37页
- 2017-03-18 发布于贵州
- 举报
Camera 驱动和编程
了解了framebuffer,摄像头便只是fb的数据来源而已。
先了解些相关的概念:
V4L2(video 4 linux 2)
可以支持多种设备,它可以有以下几种接口:
1.?视频采集接口(video capture interface):这种应用的设备可以是高频头或者摄像头.V4L2的最初设计就是应用于这种功能的.
2. 视频输出接口(video output interface):可以驱动计算机的外围视频图像设备--像可以输出电视信号格式的设备.
3. 直接传输视频接口(video overlay interface):它的主要工作是把从视频采集设备采集过来的信号直接输出到输出设备之上,而不用经过系统的CPU.
4. 视频间隔消隐信号接口(VBI interface):它可以使应用可以访问传输消隐期的视频信号.
5. 收音机接口(radio interface):可用来处理从AM或FM高频头设备接收来的音频流.
?
Video4linux下视频编程的流程:
(1)打开视频设备:
(2)读取设备信息
(3)更改设备当前设置(没必要的话可以不做)
(4)进行视频采集,两种方法:
a.内存映射
b.直接从设备读取
(5)对采集的视频进行处理
(6)关闭视频设备。
/* 这样的流程地球人都晓得 */
?
?
关键步骤介绍 :
(1)打开视频:
Open(”/dev/video0”,vdàfd);
关闭视频设备用close(”/dev/video0”,vdàfd);
(2)读video_capability中信息
ioctl(vd-fd, VIDIOCGCAP, (vd-capability))
成功后可读取vd-capability各分量 eg.
(3)读video_picture中信息
ioctl(vd-fd, VIDIOCGPICT, (vd-picture));
(4)改变video_picture中分量的值 (可以不做的)
先为分量赋新值,再调用VIDIOCSPICT
Eg.
vd-picture.colour = 65535;
if(ioctl(vd-fd, VIDIOCSPICT, (vd-picture)) 0)
{
perror(VIDIOCSPICT);
return -1;
}
(5)初始化channel (可以不做的)
必须先做得到vd-capability中的信息
for (i = 0; i vd-capability.channels; i++)
{
vd-channel[i].channel = i;
if (ioctl(vd-fd, VIDIOCGCHAN, (vd-channel[i])) 0)
{
perror(v4l_get_channel:);
return -1;
}
}
/* 通过ioctl,将struct v4l_struct作为参数的设备操作而已,那么重点将是整个结构体:struct v4l_struct*/
?
typedef?struct v4l_struct
{
int fd;
struct video_capability capability;
struct video_channel channel[4];
struct video_picture picture;
struct video_window window;
struct video_capture capture;
struct video_buffer buffer;
struct video_mmap mmap;
struct video_mbuf mbuf;
unsigned char *map;
int frame;
int framestat[2];
}vd;
?
/* 那么,对该结构体的了解便成了关键*/
Video4linux支持的数据结构及其用途
(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
palette?// VIDEO_PALETTE_RGB24
(3)video_channel?关于各个信号源的属性
Channel?//信号源
您可能关注的文档
- accumulate13两会双语热词收集word7accumulate13 两会双语热词收集word7.doc
- 2012043038 何__实验01 sql server 2000安装2012043038 何超__实验01 sql server 2000安装.doc
- access数据库基础知识.ppt
- abaqus 孤立网格aaqus 孤立网格.ppt
- acronis diskdirector 11 分区软件说明acronis disk director 11 分区软件说明.doc
- acs诊断和治疗acs诊和治疗.ppt
- a8常见问题-操作篇a8见问题-操作篇.ppt
- ae 教学计划及影视后期训实训.doc
- actiontec gt01-wg 54m无线路由adsl猫一体机(中文版)设置步骤简易说明actiontec gt7.doc
- adc入门 基础知识ad入门 基础知识.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)