wince6下usb摄像头(UVC)使用指南
轉(zhuǎn)自:http://hi.baidu.com/cahbb/blog/item/6d76093498fe0790a61e120e.html
在搭好了wince6的開發(fā)環(huán)境之后,下一步試驗(yàn)一下wince6下使用攝像頭的方法。搜集了不少資料,從中學(xué)習(xí)了很多有用的東西,在這給記錄下來,方便其它人學(xué)習(xí),和自己以后使用。
//---------以下是微軟網(wǎng)站內(nèi)容
我看到過一些關(guān)于Windows Embedded CE的DirectShow攝像頭的支持方面的問題咨詢。所以在這篇文章里我將展示如何讓ARM平臺(tái)下的Windows Embedded CE6.0的USB攝像頭正常運(yùn)行。在這個(gè)例子中我將使用我們的REGULUS平臺(tái)。
前期準(zhǔn)備:
? CE 6.0的在Visual Studio 2005 上的Platform Builder
? CE 6.0的USB攝像頭驅(qū)動(dòng)?
? 帶有 WinCE 6.0 R3 BSP的REGULUS ARM開發(fā)套件. (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超出了本文的范圍。在網(wǎng)上可以找到關(guān)于如何安裝WinCE 6.0 Platform Builder的文章。
安裝USB攝像頭驅(qū)動(dòng)后,驅(qū)動(dòng)的源代碼應(yīng)該會(huì)自動(dòng)被放在WINCE600\PUBLIC\ThirdParty目錄中。
帶著USB攝像頭驅(qū)動(dòng)編譯OS:
新建或打開一個(gè)開發(fā)套件中已有的OSDesign。在我這里,我已經(jīng)為我們的REGUPLUS板生成好了一個(gè)REGULUS-1_DEMO OSDesign。
由于此驅(qū)動(dòng)基于DirectShow,我們需要將DirectShow過濾器加入到OS的鏡像里來讓我們的驅(qū)動(dòng)和應(yīng)用程序正常工作。
從catalog對(duì)話框中選擇如下組件來將已安裝好的USB攝像頭驅(qū)動(dòng)加入到OS鏡像中:
下圖是DirectShow Sysgen組件:
在將所有上述的SYSGEN組件加入完畢后,從VS2005的菜單中選擇下面的命令來編譯OSDesign:
Build–>Advanced BuildCommands–>Clean Sysgen
當(dāng)編譯完成后,在release目錄里檢查ce.bib和reginit.ini來確認(rèn)usbcam.dll設(shè)置項(xiàng)是否存在。
應(yīng)用程序的編譯:
現(xiàn)在我們已經(jīng)將USB攝像頭的驅(qū)動(dòng)加好了。接下來讓我們用應(yīng)用程序來測(cè)試這個(gè)驅(qū)動(dòng)。我們可以在WinCE的共享資源(例如PRIVATE目錄)中找到一些DirectShow攝像頭的示例應(yīng)用程序。攝像頭應(yīng)用程序的源代碼可以在以下目錄中找到:
WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP
為編譯生成應(yīng)用程序的可執(zhí)行文件,進(jìn)行以下幾步工作:
? 從workspace的Build菜單中選擇"Open release Directory in Build Window"
? 將路徑改變到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\COMMON\LIBS
? 輸入命令 ‘build -c’.
? 當(dāng)這些路徑中的編譯過程結(jié)束后,將路徑改變至 WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA
? 輸入命令 ‘build -c’.
? 編譯將在這些路徑中進(jìn)行, 不過最后會(huì)有"kato.lib"不可用的錯(cuò)誤。 ? 現(xiàn)在轉(zhuǎn)移路徑到WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA\CAMERAAPP\
? 輸入命令 ‘build -c’
? 應(yīng)用程序二進(jìn)制文件"CameraDshowApp.exe"將生成于OSDesign的Release目錄下。
下載并執(zhí)行:
在編譯完帶有usbcam.dll和CameraDshowApp.exe的OS鏡像后我們就可以把此鏡像下載到開發(fā)板里了。當(dāng)下載結(jié)束并啟動(dòng)之后,將USB攝像頭連結(jié)到REGULUS開發(fā)板的USB Host port上。
當(dāng)程序連結(jié)好設(shè)備之后,我們就可以運(yùn)行我們之前編譯好的程序(CameraDshowApp.exe)了。這將會(huì)顯示可供選擇的用于生成過濾圖的過濾器列表。如果攝像頭驅(qū)動(dòng)被正確地加載,設(shè)備名"CAM1:"將會(huì)顯示在這個(gè)組合對(duì)話框中。
選擇需要的過濾器并點(diǎn)擊OK,這將會(huì)以攝像頭支持的、接近于注冊(cè)表設(shè)置項(xiàng)"PreferredWidth"中數(shù)值的尺寸大小來運(yùn)行攝像頭的預(yù)覽功能。你可以 檢查$(_WINCEROOT)\PUBLIC\ThirdParty\Catalog\USBCam\Driver\usbcam.reg這個(gè)注冊(cè)表文 件來確定"PreferredWidth"注冊(cè)表項(xiàng)。
同時(shí)請(qǐng)根據(jù)Webcam支持的輸出格式來設(shè)置如下的注冊(cè)表項(xiàng)。我的攝像頭支持YUV無壓縮輸出,所以我的相應(yīng)的注冊(cè)表項(xiàng)設(shè)置為:
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Video_Class]"UncompressedSupport"=dword:1 "MJPEGSupport"=dword:0
轉(zhuǎn)自Tony嵌入式論壇,地址:http://www.cevx.com/bbs/thread-38322-1-1.html
//=====以上是微軟網(wǎng)站內(nèi)容
借薦的最好的一個(gè)網(wǎng)站:http://www.msembed.com/,有介紹怎么使用的。按照它的步驟來做,在加入了usb攝像頭驅(qū)動(dòng)后會(huì)在編譯wicne6系統(tǒng)時(shí)出現(xiàn)一個(gè)錯(cuò)誤。Error - variable"PCI_BUS_ROOT" not defined。要去掉這個(gè)錯(cuò)誤。要到如下目錄中:
根盤符:wince600\PLATFORM\SMDK6410\FILES\platform.reg????加入如下定義:
#define BUILTIN_ROOTHKEY_LOCAL_MACHINE\Drivers\BuiltIn
#define PCI_BUS_ROOT $(BUILTIN_ROOT)\PCI
再重新編譯就可以正常了,寫到開發(fā)板中,再插上攝像頭,就不會(huì)再出現(xiàn)提示要輸入usb設(shè)置名稱的框子了。說明驅(qū)動(dòng)加入了。在開發(fā)板的windows目錄下,有一個(gè)測(cè)試程序,也不知怎么系統(tǒng)好像自帶的,打開運(yùn)行,會(huì)發(fā)現(xiàn)可以打開攝像頭了。
其 中有一個(gè)小插曲,用網(wǎng)上介紹的方法,去編譯攝像頭程序時(shí),找不到它的測(cè)試用源代碼。介紹說可能是裝wince6時(shí)沒有選上,我想了想確定是選上了。后來又用同事帶的wince6的安裝文件裝,就有了。說明我現(xiàn)在用的wince6這個(gè)安裝包沒有這個(gè)源碼,還有在使用修復(fù)安裝時(shí),用我從開發(fā)板廠家買來的這個(gè) 盤,提示無法進(jìn)行修復(fù)安裝。但用同事的那個(gè)安裝文件就可以正常的修復(fù)安裝。再次說明開發(fā)板廠家提供的這個(gè)安裝盤有點(diǎn)小小的問題。總結(jié)
以上是生活随笔為你收集整理的wince6下usb摄像头(UVC)使用指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惊险一幕:男子划龙舟被雷击中 落水失联
- 下一篇: 《黑袍纠察队》第三季首播IGN评分8分