免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1016 | 回复: 0
打印 上一主题 下一主题

video4linux笔记3 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-05 09:52 |只看该作者 |倒序浏览

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的设置是通过
VIDIOC_G_FMT
and
VIDIOC_S_FMT
来获得和设置当前的image的长度,宽度来实现的。看下图

我们可以假设bounds是最大的能捕捉到的图像范围,defrect是我们的设备能够得到的最大的范围,这个可以通过VIDIOC_CROPCAP的ioctl来获得设备的crap相关的属性
v4l2_cropcap
,其中的bounds就是这个bounds,其实就是上限。每个设备都有个默认的取样范围,就是defrect,就是default rect的意思,它比bounds要小一些。这个范围也是通过VIDIOC_CROPCAP的ioctl来获得的
v4l2_cropcap
结构中的defrect来表示的,我们可以通过
VIDIOC_G_CROP
and
VIDIOC_S_CROP
来获取和设置设备当前的crop设置。
    问题:难道设置
VIDIOC_S_FMT
只是设置了伸缩?即到的图像还是一样的?具体拍的哪部分要依靠设置crop的设置?


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/50545/showart_1272668.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP