Chinaunix首页 | 论坛 | 博客
  • 博客访问: 829811
  • 博文数量: 290
  • 博客积分: 511
  • 博客等级: 下士
  • 技术积分: 1590
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-29 13:14
文章分类

全部博文(290)

文章存档

2018年(28)

2017年(19)

2016年(8)

2015年(1)

2014年(14)

2013年(12)

2012年(22)

2011年(186)

分类:

2011-04-20 20:21:43

原文地址:video4linux笔记3 作者:zjh_larm

1。User controlls其实就是一些用户可以用来进行设置的一些属性,如视频中的brightness等,video4linux就提取出了最常见的一些设置,给他们分配了ID,这样大家对于这些常见的设置,就是用这些ID就可以了,可以察看当前设备对该设置的值,也可以给该设置新值,此外,由于某些设置包含很多子设置项,因此就又有了menu的含义,即对于一个具体的control,我们在列举他的属性时,发现其类型是包含了menu的,那么我们就可以以这个control的id为参数,察看其menu及各自的值。当然用户可以由自定义的control以及extended control。 好像是Camera Control ID中就有可以设置focus聚焦的control id,这个可以看一看。

 2。Data format 应用是可以和device针对通信的数据进行谈判的,即可以设置device所使用的数据的格式,可以获得设备所使用的数据的格式,也可以尝试一下某种格式的数据设备是否支持。使用 VIDIOC_G_FMT and VIDIOC_S_FMT ioctls,而VIDIOC_TRY_FMT 就是用来试一下某设置是否被设备支持,而且只是 测试,并不会起作用。我们还是可以用VIDIOC_ENUM_FMT来列举设备所支持的所有的image的格式的。 关于数据格式,在video中就会涉及到image的格式,大小(宽度,高度),等信息。

3. crapping和scaling
  就是把得到的数据作一定的剪裁,和伸缩,剪裁可以只取样我们可以得到的图像大小的一部分,剪裁的主要参数是位置和长度以及宽度,而scale的设置是通过 and 来获得和设置当前的image的长度,宽度来实现的。看下图
我们可以假设bounds是最大的能捕捉到的图像范围,defrect是我们的设备能够得到的最大的范围,这个可以通过VIDIOC_CROPCAP的ioctl来获得设备的crap相关的属性 ,其中的bounds就是这个bounds,其实就是上限。每个设备都有个默认的取样范围,就是defrect,就是default rect的意思,它比bounds要小一些。这个范围也是通过VIDIOC_CROPCAP的ioctl来获得的 结构中的defrect来表示的,我们可以通过 and 来获取和设置设备当前的crop设置。
    问题:难道设置只是设置了伸缩?即到的图像还是一样的?具体拍的哪部分要依靠设置crop的设置?
阅读(574) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~