wince6下usb摄像头(UVC)使用指南

转自:http://hi.baidu.com/cahbb/blog/item/6d76093498fe0790a61e120e.html

在搭好了wince6的开发环境之后,下一步试验一下wince6下使用摄像头的方法。搜集了不少资料,从中学习了很多有用的东西,在这给记录下来,方便其它人学习,和自己以后使用。

//---------以下是微软网站内容

我看到过一些关于Windows Embedded CE的DirectShow摄像头的支持方面的问题咨询。所以在这篇文章里我将展示如何让ARM平台下的Windows Embedded CE6.0的USB摄像头正常运行。在这个例子中我将使用我们的REGULUS平台。

前期准备:

• CE 6.0的在Visual Studio 2005 上的Platform Builder

• CE 6.0的USB摄像头驱动 

• 带有 WinCE 6.0 R3 BSP的REGULUS ARM开发套件. (http://www.e-consystems.com/regulus.asp)  
• 3.2 MP USB摄像头(http://www.e-consystems.com/3mp_cameraboard_usb.asp)


安装:

如何安装Visual Studio和Platform Builder for CE6.0超出了本文的范围。在网上可以找到关于如何安装WinCE 6.0 Platform Builder的文章。

安装USB摄像头驱动后,驱动的源代码应该会自动被放在WINCE600\PUBLIC\ThirdParty目录中。

带着USB摄像头驱动编译OS:

新建或打开一个开发套件中已有的OSDesign。在我这里,我已经为我们的REGUPLUS板生成好了一个REGULUS-1_DEMO OSDesign。

由于此驱动基于DirectShow,我们需要将DirectShow过滤器加入到OS的镜像里来让我们的驱动和应用程序正常工作。

从catalog对话框中选择如下组件来将已安装好的USB摄像头驱动加入到OS镜像中:

下图是DirectShow Sysgen组件:

在将所有上述的SYSGEN组件加入完毕后,从VS2005的菜单中选择下面的命令来编译OSDesign:

Build–>Advanced BuildCommands–>Clean Sysgen

当编译完成后,在release目录里检查ce.bib和reginit.ini来确认usbcam.dll设置项是否存在。

应用程序的编译:

现在我们已经将USB摄像头的驱动加好了。接下来让我们用应用程序来测试这个驱动。我们可以在WinCE的共享资源(例如PRIVATE目录)中找到一些DirectShow摄像头的示例应用程序。摄像头应用程序的源代码可以在以下目录中找到:

WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP

为编译生成应用程序的可执行文件,进行以下几步工作:
• 从workspace的Build菜单中选择"Open release Directory in Build Window"
• 将路径改变到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\COMMON\LIBS
• 输入命令 ‘build -c’.
• 当这些路径中的编译过程结束后,将路径改变至 WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA
• 输入命令 ‘build -c’.
• 编译将在这些路径中进行, 不过最后会有"kato.lib"不可用的错误。 • 现在转移路径到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP\
• 输入命令 ‘build -c’
• 应用程序二进制文件"CameraDshowApp.exe"将生成于OSDesign的Release目录下。
下载并执行:
在编译完带有usbcam.dll和CameraDshowApp.exe的OS镜像后我们就可以把此镜像下载到开发板里了。当下载结束并启动之后,将USB摄像头连结到REGULUS开发板的USB Host port上。
当程序连结好设备之后,我们就可以运行我们之前编译好的程序(CameraDshowApp.exe)了。这将会显示可供选择的用于生成过滤图的过滤器列表。如果摄像头驱动被正确地加载,设备名"CAM1:"将会显示在这个组合对话框中。

选择需要的过滤器并点击OK,这将会以摄像头支持的、接近于注册表设置项"PreferredWidth"中数值的尺寸大小来运行摄像头的预览功能。你可以 检查$(_WINCEROOT)\PUBLIC\ThirdParty\Catalog\USBCam\Driver\usbcam.reg这个注册表文 件来确定"PreferredWidth"注册表项。

同时请根据Webcam支持的输出格式来设置如下的注册表项。我的摄像头支持YUV无压缩输出,所以我的相应的注册表项设置为:
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Video_Class]"UncompressedSupport"=dword:1 "MJPEGSupport"=dword:0
转自Tony嵌入式论坛,地址:http://www.cevx.com/bbs/thread-38322-1-1.html

//=====以上是微软网站内容


借荐的最好的一个网站:http://www.msembed.com/,有介绍怎么使用的。按照它的步骤来做,在加入了usb摄像头驱动后会在编译wicne6系统时出现一个错误。Error - variable"PCI_BUS_ROOT" not defined。要去掉这个错误。要到如下目录中:

根盘符:wince600\PLATFORM\SMDK6410\FILES\platform.reg    加入如下定义:

#define BUILTIN_ROOTHKEY_LOCAL_MACHINE\Drivers\BuiltIn
#define PCI_BUS_ROOT $(BUILTIN_ROOT)\PCI

再重新编译就可以正常了,写到开发板中,再插上摄像头,就不会再出现提示要输入usb设置名称的框子了。说明驱动加入了。在开发板的windows目录下,有一个测试程序,也不知怎么系统好像自带的,打开运行,会发现可以打开摄像头了。

其 中有一个小插曲,用网上介绍的方法,去编译摄像头程序时,找不到它的测试用源代码。介绍说可能是装wince6时没有选上,我想了想确定是选上了。后来又用同事带的wince6的安装文件装,就有了。说明我现在用的wince6这个安装包没有这个源码,还有在使用修复安装时,用我从开发板厂家买来的这个 盘,提示无法进行修复安装。但用同事的那个安装文件就可以正常的修复安装。再次说明开发板厂家提供的这个安装盘有点小小的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用SqlCommandBuilder

使用命令构造器添加行 View Code using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient;namespace PersistAddsBuilder {class Program{static void Main(string[] args){string connStri…

Asterisk权威指南/第二章 Asterisk架构

Asterisk和其他传统的PBX完全不同,因为Asterisk的拨号计划以同样的方式处理所有的入局信道(incoming channels)。 传统的PBX在逻辑上区分工作站信道(连接电话机)和电话局信道(连接到外部世界)。…

x-lite asterisk 成功实现视频通话

首先,在此感谢asterisk协会的各位大牛们,没有他们的帮助,我也不可能在这么短的时间内实现,x-liteasterisk音视频通话。在此将实现的过程记录如下,分享给asterisk的爱好者们。 1. 修改asterisk服务器的sip.conf文件&…

axure 链接html文件,通过WuliHub免费托管原型Axure HTML文件

产品经理常用的工具就是Axure,通过Axure把想法转化成包含交互的原型线框图。在工作中,我们用HTML文件传递不仅会遇到某些浏览器无法打开的问题,而且没有办法及时更新内容。所以,介绍一种简单的并且免费的方式来方便管理HTML原型&a…

Asterisk SIP连通测试(X-Lite eyebeam)

Step1:设置 sip.conf rootUbuntu:/etc/asterisk# vim sip.conf [general] //类似与全局变量 context default srvlookup yes //DNS SRV记录查询 [111] secretaaa //密码&#xf…

html多出的空白页怎么删除,word多出一页空白页怎么删除,这4个方法总有一个能解决,真实挂机网赚项目...

信赖大多数人都碰到过这样的难题,在编辑Word文档的时刻,是不是在中心或者是最后一页,莫名其妙的泛起空白页,而且这个空白页怎么删都删不掉。不要着急,今天就给人人分享4种简朴又好用的解决方式,总有一种能让…

linq to json for sl

一.Linq to JSON是用来干什么的?Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和修改部分的数据而非反序列化全部. 二.创建JSON数组和对象在进行Linq to…

编程是一种艺术创作

软件正在吞噬世界 “软件正在吞噬世界。”——马克 安德森 马克 • 安德森 在新一轮的信息技术革命中,我们已经见证,软件对社会生产的方方面面,产生了深刻的影响,它们侵入并颠覆了已经建立起来的行业架构。越来越多的大企业和行业…

loss值多少才算收敛_一个家庭一年要存多少钱才算正常?国家统计局给出“答案”...

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅,请放心关注。免责声明:本文来源于网络,如有侵权请联系作者删除。“手里有粮&…

郑州升达经贸管理学院计算机专业学费,郑州升达经贸管理学院学费

郑州升达经贸管理学院学费2020-07-10 13:17:19文/叶丹2020年郑州升达经贸管理学院文科类本科专业学费15000元/年;郑州升达经贸管理学院理科类本科专业学费16000元/年。一般情况下,艺术类专业学费比普通专业高一些。郑州升达经贸管理学院依据省(市区)教育…

不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...

文|文儿我有一个发小,蛮有钱的,前两天参加完孩子的运动会,气呼呼地说“穷人就爱斤斤计较,千万不要轻易地跟他们打交道”。这是怎么回事呢?原来,我的这位发小,今年孩子转学上了小学二年级&#x…

html 遍历div内check,vue+element中checkbox 实现遍历分组全选

1、html部分style"margin-left: 30px":indeterminate"item.isIndeterminate"v-model"item.isCheck"change"checkTitle(item.isCheck, index)">全选>v-model"item.checkedData"change"checkItem(item.checkedData…

homepod换wifi网络_如何实现短租网络自由,不必换房断网

对于在异地工作的人来说,租房一直是头疼的问题,要避开黑中介,房租不能太贵,还要离公司近,最好单间或者舍友不能太奇葩,要满足以上条件实在是太难了。其实最核心的问题是房租,押一付三&#xff0…

如何升级浏览器_手把手教你申请IOS14 Beta升级方法

就在最近苹果公司正式开放了IOS14 Public Beta 2还不了解IOS14的小伙伴参考一只废材:WWDC2020 之 IOS14 篇(内含升级方法和个人体验参考)​zhuanlan.zhihu.com本期废材就来教大家如何申请升级操作方法简单易懂又官方本方法每次发布版本更新都…

树的直径,树的最长路dp思想

dp一直弱死了,树型dp很多基本的题都不会,最近在刷树型dp的题,把关于树的最长路的思想总结一下: 树的直径:树中距离最远的两点间的距离。 下面说几道题: hdu 2196:对于树上(双向边&am…

linux sd卡 读写速度测试_铠侠(原东芝存储)SD卡,大容量存储时代,高速读写选择...

作为一个经常出去旅行的旅游博主,在旅行过程中,还是有很多拍摄的需求。无论是存储美图,还是视频,一个大容量、安全可靠的储存卡还是很有必要的。这既可以缓解因为容量不够,频繁导数据的尴尬。又不会因为数据丢失&#…

potplayer 多个进程_操作系统 | 进程同步与进程互斥

主题 进程同步与进程互斥 01进程同步 问题在多道批处理系统中,多个进程是并发执行的,而并发执行的进程具有异步性,也就是说,各个进程以各自独立的、不可预知的速度向前推进。这样会带来什么问题呢?如果有 AB…

Java中间件:淘宝网系统高性能利器

【TechTarget中国原创】淘宝网是亚太最大的网络零售商圈,其知名度毋庸置疑,吸引着越来越多的消费者从街头移步这里,成为其忠实粉丝。如此多的用户和交易量,也意味着海量的信息处理,其背后的IT架构的稳定性、可靠性也显…

@autowired注解 抽象类_别再用ifelse了,用注解去代替他吧

来自公众号:咖啡拿铁策略模式经常在网上看到一些名为“别再if-else走天下了”,“教你干掉if-else”等之类的文章,大部分都会讲到用策略模式去代替if-else。策略模式实现的方式也大同小异。主要是定义统一行为(接口或抽象类),并实现…

卸载mysql8.0卸载程序_程序卸载失败,来使用微软官方的Windows卸载工具试试

在我们实际的Windows操作系统使用中,总会遇到一些程序无法成功卸载的情况。当然,我们可以使用第三方软件来进行尝试卸载。要么,第三方软件会进行收费。要么,免费的会带给你捆绑软件的安装或者烦人的广告。还可能会造成系统文件的误…