您的位置:网站首页 / UVC摄像头开发问答
DiectShow可以通过usb口发送指令给相机吗?例如控制相机的焦距
UVC摄像头开发问答 2021-01-23
在回答上述问题前,我们首先应明确:
DriectShow是什么?
我们知道,UVC摄像头的控制在Windows应用层,可以通过两套框架实现对摄像头的控制接口。
这两套框架分别叫DriectShow和Media Foundation。
DriectShow的相关参考文档及代码
https://docs.microsoft.com/en-us/previous-versions/ms893692(v=msdn.10)
参考代码1:http://www.bytekits.com/programmingcodewindows/programming-code-windows-vc-camera.html
参考代码2:https://www.jianshu.com/p/a67b8cfc57c5
https://docs.microsoft.com/en-us/windows/desktop/DirectShow/video-capture
关于DriectShow的参考开发工程AmCap源码
使用DriectShow进行摄像头应用程序的开发,一般我们采用微软提供的 Microsoft DirectShow AmCap源码。
AmCap的源代码列表如下:
2021/01/07 17:31 164,676 amcap.cpp
2020/07/14 19:59 4,748 amcap.h
2005/01/24 19:15 1,078 amcap.ico
2005/01/24 19:15 16,801 amcap.jpg
2021/01/07 17:35 6,755 amcap.rc
2018/05/04 18:03 2,228 amcap.sln
2005/01/24 19:15 1,332 amcap.sln.old
2011/02/11 13:58 11,660 amcap.vcproj
2021/01/11 19:41 50,710 amcap.vcxproj
2020/08/24 10:02 1,979 amcap.vcxproj.filters
2016/11/21 14:07 143 amcap.vcxproj.user
2020/08/24 10:43 27 config.ini
2005/01/24 19:15 18,363 crossbar.cpp
2005/01/24 19:15 2,703 crossbar.h
2005/01/24 19:15 15,916 makefile.x64
2020/08/24 09:58 78,951 resource.h
2005/01/24 19:15 46,066 SampleCGB.cpp
2005/01/24 19:15 8,087 SampleCGB.h
2005/01/24 19:15 9,002 status.cpp
2005/01/24 19:15 832 status.h
2005/01/24 19:15 297 stdafx.cpp
2018/05/08 16:32 1,255 stdafx.h
2018/08/09 14:53 4,012,914 strmbasd.lib
2011/02/11 13:58 4,396 UpgradeLog.XML
2016/11/21 14:07 3,498 UpgradeLog2.XML
使用DirectShow进行UVC控制相机的焦距的技术前提?
UVC控制相机的焦距的概念是UVC相机端点描述符中的内容:
详情可参见:http://usb.bytekits.com/uvc/uvc-camera-terminal-descriptor.html
在相机的终端描述符中,bmControls字段使用D5,D6字段进行焦距功能的支持。所以如果想进行相机的焦距的控制,首先得在这里支持该功能。
如何使用DirectShow进行UVC控制相机的
如果UVC摄像头支持集距的控制,那么我们可以使用UVC相机终端的控制请求进行焦距的控制。
这两件选择子分别为:
- CT_FOCUS_ABSOLUTE_CONTROL - 用于绝对控制
- CT_FOCUS_RELATIVE_CONTRO - 用于相对控制
详情可见:http://usb.bytekits.com/uvc/uvc-camera-terninal-control-request.html
如果以上都实现了,那么我们编译AmCap源码源代码,运行程序,打开摄像头,在其属性控制上可以进行摄像头焦距的控制。
本机测试的摄像头不支持摄像头焦距的控制。
如下图:
很赞哦!
相关文章
- UAC和UVC有什么区别
- UVC1.0和UVC 1.1有什么区别
- Windows对UVC特性的支持
- Windows对UVC规范的版本支持
- 怎么开发UVC摄像头应用软件程序及使用请求接口API
- USB2.0和USB3.0有什么区别
- 比较好用的UVC摄像头应用测试工具有那些?
- DiectShow可以通过usb口发送指令给相机吗?例如控制相机的焦距
- UVC特定类请求get cur返回长度是26或者是34的是什么?
- UVC摄像头扩单元功能的开发步骤是什么?
- 使用GraphEdit显示摄像头
- DirectShow设置亮度、对比度等属性
- Directshow修改摄像头分辨率
- Directshow获取颜色空间分辨率
文章评论
标签云
站点信息
- 建站时间:2019-07-24
- 联系站长:tsingchen2008@163.com
- 加QQ群 :952873936