基于Windows CE的智能家居安防系統(tǒng)_第1頁(yè)
基于Windows CE的智能家居安防系統(tǒng)_第2頁(yè)
基于Windows CE的智能家居安防系統(tǒng)_第3頁(yè)
基于Windows CE的智能家居安防系統(tǒng)_第4頁(yè)
基于Windows CE的智能家居安防系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于Windows CE的智能家居安防系統(tǒng)的研究-Intelligent Security System for House摘要 eDog系統(tǒng)是一個(gè)面向家庭用戶(hù)的基于eBoxII在Microsoft Windows CE 5.0平臺(tái)下開(kāi)發(fā)的智能家居安防保全系統(tǒng)。eDog可以通過(guò)攝像頭將采集到的實(shí)時(shí)視頻圖像進(jìn)行運(yùn)動(dòng)檢測(cè),當(dāng)發(fā)現(xiàn)有運(yùn)動(dòng)產(chǎn)生時(shí),通過(guò)撥打電話(huà)等多種方式自動(dòng)向用戶(hù)發(fā)出警報(bào),同時(shí)將實(shí)時(shí)捕獲的圖像上傳到ftp服務(wù)器。eDog系統(tǒng)支持標(biāo)準(zhǔn)Web瀏覽和Web遠(yuǎn)程控制,并可隨時(shí)檢索、回放歷史視頻記錄。用戶(hù)可以由接受到的電話(huà)做出不同的反應(yīng),控制系統(tǒng)發(fā)出警報(bào)。系統(tǒng)提供了良好的用戶(hù)界面,穩(wěn)定的運(yùn)行環(huán)境,

2、便捷的遠(yuǎn)程操作,強(qiáng)大的擴(kuò)展功能,有較高的實(shí)際應(yīng)用價(jià)值。關(guān)鍵詞 嵌入式 圖像采集 運(yùn)動(dòng)檢測(cè) 串口通信 Abstract: The intelligent security system for house is designed for the family user. The eDog system is based on the eBoxII platform and developed in Microsoft Windows CE 5.0 environment. It uses a web camera to capture video picture, then does motio

3、n detection. If there is some motion the system can alarm automatically through many ways such as give someone a ring or and submit the motorial video pictures to the appointed server to backup. Furthermore the system supports standard Web, WAP browser so user can access the system remotely to contr

4、ol, search or review the history video record. The system has offered a nicer interface, steady running environment, convenient long-range operation, strong expanded function, so it has a well using value.Keyword: embedded system、Video collection、Motion estimation、serial communication目錄摘要1關(guān)鍵詞1Abstra

5、ct:2Keyword:2引言:5第一章相關(guān)介紹51.1 背景知識(shí)51.1.1 嵌入式系統(tǒng)的介紹51.1.2 Windows CE的介紹51.1.3 Windows CE的設(shè)計(jì)目標(biāo)61.1.4 eBoxII介紹61.1.5 EVC概述71.1.6 Platform Builder71.2 Windows CE程序開(kāi)發(fā)81.2.1 事件驅(qū)動(dòng)和消息響應(yīng)機(jī)制81.2.2 Windows CE程序和Windows程序的不同點(diǎn)81.3 eDog系統(tǒng)主要功能91.3 系統(tǒng)特色9第二章程序的模塊設(shè)計(jì)92.1 eDog的頂層數(shù)據(jù)流圖:92.2 eDog的層次方框圖:102.3主程序流程圖10第三章在 Plat

6、form Builder定制Windows CE113.1 PB簡(jiǎn)介113.2 BSP簡(jiǎn)介123.3 定制Windows CE.123.4 Windows CE 注冊(cè)表簡(jiǎn)介123.5 注冊(cè)表編輯器13第四章圖像模塊144.1 視頻采集144.1.1 BMP文件格式144.1.2 視頻采集相關(guān)說(shuō)明144.1.3 CE的流接口驅(qū)動(dòng)程序154.1.4 即時(shí)圖像捕捉164.2 運(yùn)動(dòng)檢測(cè)19計(jì)算幀差絕對(duì)值194.2.2 eDog中運(yùn)動(dòng)檢測(cè)模塊的具體實(shí)現(xiàn)方法204.3 圖像壓縮23第五章?lián)艽螂娫?huà)模塊255.1 串口通信255.2 RS-232串行接口標(biāo)準(zhǔn)255.3Modem 撥打電話(huà)模塊26結(jié)論:29致謝

7、語(yǔ):30參考文獻(xiàn):30引言:隨著計(jì)算機(jī)通信技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù)已成為計(jì)算機(jī)網(wǎng)絡(luò)中一個(gè)至關(guān)重要的組成部分,它的應(yīng)用領(lǐng)域也在飛速的擴(kuò)大。因此我們?cè)O(shè)計(jì)了智能家居安防保全系統(tǒng)(eDog),以增強(qiáng)家居安全防范的能力。eDog應(yīng)用現(xiàn)已普及的有線(xiàn)網(wǎng)絡(luò),固定電話(huà)網(wǎng)絡(luò),無(wú)線(xiàn)電話(huà)通信系統(tǒng),PC攝像頭等硬件條件,充分發(fā)揮eBoxII強(qiáng)大的功能;我們開(kāi)發(fā)圖像捕捉程序,自主開(kāi)發(fā)了運(yùn)動(dòng)圖像檢測(cè)算法,報(bào)警程序;創(chuàng)建本地Web服務(wù)器系統(tǒng),以及遠(yuǎn)程通信系統(tǒng);通過(guò)友好的人機(jī)交互界面,用戶(hù)可在本地終端或遠(yuǎn)程登陸web服務(wù)器對(duì)系統(tǒng)操作,并能穩(wěn)定工作。本文首先介紹了嵌入式系統(tǒng)的相關(guān)知識(shí)、Windows CE和在Win

8、dows CE平臺(tái)程序開(kāi)發(fā)所必須做的準(zhǔn)備。另外本文主要介紹了eDog開(kāi)發(fā)的整個(gè)流程,著重介紹了圖像模塊和Modem報(bào)警模塊,其余模塊由小組其他成員完成。系統(tǒng)采用Embedded Visual C+(簡(jiǎn)稱(chēng)EVC)嵌入式編程語(yǔ)言在Microsoft Windows CE 5.0環(huán)境下編寫(xiě)。主要介紹了開(kāi)發(fā)過(guò)程中用到的算法和相關(guān)的類(lèi),并做了詳細(xì)介紹。第一章 相關(guān)介紹 1.1 背景知識(shí)1.1.1 嵌入式系統(tǒng)的介紹嵌入式系統(tǒng)是以應(yīng)用為中心,以半導(dǎo)體技術(shù)、控制技術(shù)、計(jì)算機(jī)技術(shù)和通訊技術(shù)為基礎(chǔ),強(qiáng)調(diào)硬件軟件的協(xié)同性與整合性,并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)

9、系統(tǒng)。嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶(hù)的應(yīng)用程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。相關(guān)支撐硬件主要包括顯示設(shè)備、存儲(chǔ)設(shè)備和各種接口等,隨著功能的增強(qiáng)以及復(fù)雜性的不斷增加,操作系統(tǒng)成為了嵌入式系統(tǒng)不可缺少的一個(gè)基本部件。應(yīng)用程序嵌入式操作系統(tǒng)以嵌入式微處理器為核心的硬件平臺(tái)圖1.1 嵌入式系統(tǒng)的結(jié)構(gòu)圖1.1.2 Windows CE的介紹Windows CE作為windows家族的最新最小的操作系統(tǒng),是一個(gè)搶先式多任務(wù)并具有強(qiáng)大通信能力的Windows 32嵌入式操作系統(tǒng),是微軟專(zhuān)門(mén)為信息設(shè)備、移動(dòng)應(yīng)用、消費(fèi)類(lèi)電子產(chǎn)品、嵌入式應(yīng)用等非

10、PC領(lǐng)域而設(shè)計(jì)的戰(zhàn)略性操作系統(tǒng)產(chǎn)品。它是多線(xiàn)程、完整優(yōu)先權(quán)和多任務(wù)的操作系統(tǒng),其基本內(nèi)核需要至少200K的ROM。它的模塊化設(shè)計(jì)允許它對(duì)于從掌上電腦到專(zhuān)用的工業(yè)控制器的用戶(hù)電子設(shè)備進(jìn)行定制。工業(yè)控制是嵌入式操作系統(tǒng)的傳統(tǒng)應(yīng)用領(lǐng)域,但近年來(lái)隨著家電信息化成為愈來(lái)愈明顯的趨勢(shì)對(duì)嵌入式操作系統(tǒng)提出了許多新的要求,例如熟悉和友好的用戶(hù)界面,統(tǒng)一的編程界面,強(qiáng)大的通信功能等,而恰好是Windows CE的優(yōu)勢(shì)。1.1.3 Windows CE的設(shè)計(jì)目標(biāo)Windows CE的設(shè)計(jì)目標(biāo)是模塊化及可伸縮性,實(shí)時(shí)性能好,通信能力強(qiáng)大,支持多種CPU。從操作系統(tǒng)內(nèi)核的角度看,Window CE具有靈活的電源。管理

11、功能,包括睡眠/喚醒模式,在Windows CE中還使用了對(duì)象存儲(chǔ)(Object Store)技術(shù)包括文件系統(tǒng)注冊(cè)表及數(shù)據(jù)庫(kù)。它還具有很多高性能高效率的操作系統(tǒng)特性,包括按需換頁(yè),共享存儲(chǔ),交叉處理,同步支持大容量堆(Heap)等。Windows CE擁有良好的通信能力。它廣泛支持各種通信硬件,亦支持直接的局域網(wǎng)連接以及撥號(hào)連接,并提供與PC內(nèi)部網(wǎng)以及Internet的連接,包括用于應(yīng)用級(jí)數(shù)據(jù)傳輸?shù)脑O(shè)備至設(shè)備間的連接,在提供各種基本的通信基礎(chǔ)結(jié)構(gòu)的同時(shí),Windows CE還提供與Windows 9x/NT的最佳集成和通信。Windows CE的圖形用戶(hù)界面相當(dāng)出色,它擁有基于Microsof

12、t Internet Explorer的Internet瀏覽器,此外還支持TrueType字體。開(kāi)發(fā)人員可以利用豐富靈活的控件庫(kù)在Windows CE環(huán)境下為嵌入式應(yīng)用建立各種專(zhuān)門(mén)的圖形用戶(hù)界面,Windows CE甚至還能支持諸如手寫(xiě)體和聲音識(shí)別、動(dòng)態(tài)影像、3D圖形等特殊應(yīng)用。1.1.4 eBoxII介紹eBoxII是微軟專(zhuān)門(mén)為Windows CE.NET平臺(tái)下程序開(kāi)發(fā)定制的硬件平臺(tái)。其中微軟已經(jīng)預(yù)裝了新發(fā)布的Windows CE 5.0的鏡像,并對(duì)其進(jìn)行了內(nèi)核定制。eDog的開(kāi)發(fā)前必須重新定制CE內(nèi)核。下面介紹一下其硬件組成。CPUVortex86-200 Mhz (SoC: System

13、-on-Chip)RAM128MBBIOS AMI BIOSFlash MemoryExternal 64MB Bootable USB Flash Disk64MB Disk On Module (IDE Device)AudioAC97 CODEC, full compliant with AC97 V2.1MIC-in, Line-in and Line-out interface readyWatch Dog TimerSoftware Watchdog TimerThree 8254 Compatible Programmable 16-bit CountersLANRealtek

14、8100B Single chip x 2 Full-duplex transfer mode, doubles effective bandwidthThroughput: 10/100 Mbps DisplayAGP Rev 2.0 Compliant, shared system memory area up to 128MBCRT/LCD displayResolution up to 1920 x1440 true colorsKVM Switch2 ports KVM Switch with two sets of monitor, PS/2 keyboard and mouse

15、cablesPower Adapter18 Watt Power adapter for any +110V power input 圖1.2 eBoxII示意圖 EVC概述Embedded Visual C+(EVC)4.0是Microsoft公司推出的Windows CE程序的可視化開(kāi)發(fā)工具,是Embedded Visual Tools的重要組成部分。利用EVC 4.0用戶(hù)可以開(kāi)發(fā)出規(guī)模較大,功能較復(fù)雜的Windows CE應(yīng)用程序和流式驅(qū)動(dòng)程序。Windows CE下的EVC編程都是對(duì)特定目標(biāo)硬件的編程,允許CE的機(jī)器通常比PC的資源貧乏得多,所以編程時(shí)首先要明確目標(biāo)硬件的特點(diǎn)和要求。1

16、.1.6 Platform Builder大部分嵌入式系統(tǒng)是可移植、可裁減、可定制的。且大多數(shù)嵌入式產(chǎn)品都是針對(duì)特殊的目標(biāo)板進(jìn)行的開(kāi)發(fā)。它們大多數(shù)都需要完成特定的功能,這就說(shuō)明了嵌入式操作系統(tǒng)是與應(yīng)用環(huán)境密切相關(guān)的。Platform Builder是微軟提供給Windows CE開(kāi)發(fā)人員進(jìn)行基于Windows CE.net平臺(tái)下嵌入式操作系統(tǒng)內(nèi)核定制的集成開(kāi)發(fā)環(huán)境。它提供了所有進(jìn)行設(shè)計(jì),創(chuàng)建,編譯,測(cè)試和調(diào)試Windows CE.net操作系統(tǒng)平臺(tái)的工具。運(yùn)行在桌面Windows下,開(kāi)發(fā)人員可以通過(guò)交互式的環(huán)境來(lái)設(shè)計(jì)和定制內(nèi)核,選擇系統(tǒng)特性,然后進(jìn)行編譯和調(diào)試。同時(shí),開(kāi)發(fā)人員還可以利用PB進(jìn)行

17、驅(qū)動(dòng)程序開(kāi)發(fā)和應(yīng)用程序項(xiàng)目的開(kāi)發(fā)等。1.2 Windows CE程序開(kāi)發(fā)1.2.1 事件驅(qū)動(dòng)和消息響應(yīng)機(jī)制Windows程序設(shè)計(jì)是一種事件驅(qū)動(dòng)的程序設(shè)計(jì)模式。在程序提供給用戶(hù)的界面中有許多可操作的可視對(duì)象。用戶(hù)從所有可能的操作中任意選擇,被選擇的操作會(huì)產(chǎn)生某種特點(diǎn)的事件,這些事件發(fā)生后的結(jié)構(gòu)是向程序中的某些對(duì)象發(fā)出消息,然后這些對(duì)象調(diào)用相應(yīng)的消息處理函數(shù)來(lái)完成特定的操作。Windows的應(yīng)用程序最大的特點(diǎn)就是程序沒(méi)有固定的流程,而只是對(duì)某些處理有特定的子流程,Windows應(yīng)用程序可以說(shuō)是由許多這樣的子流程構(gòu)成的。另外,Windows程序本質(zhì)上是面向?qū)ο蟮?。Windows的這種事件驅(qū)動(dòng)模型的實(shí)

18、質(zhì)源于Windows的消息響應(yīng)機(jī)制。所謂的事件響應(yīng),就是對(duì)各種消息的響應(yīng)。圖1.3 Windows程序工作原理 Windows CE程序和Windows程序的不同點(diǎn)n Microsoft Win32 API和Windows CE API之間的不同。n Microsoft MFC標(biāo)準(zhǔn)和 MFC for Windows CE標(biāo)準(zhǔn)不同n 存儲(chǔ)器的限制和存儲(chǔ)器溢出的恢復(fù)n 電源管理的不同處理方式n 存在大量不同硬件特性和限制n 測(cè)試和調(diào)試的過(guò)程不同n Windows CE使用Unicode1.3 eDog系統(tǒng)主要功能n GUI顯示:可以在eBoxII上瀏覽實(shí)時(shí)視頻。n 本地設(shè)置運(yùn)行參數(shù):可以設(shè)置系統(tǒng)各

19、運(yùn)行參數(shù)。包括系統(tǒng)的啟動(dòng)和結(jié)束;抓圖的圖片壓縮比、色度、亮度、對(duì)比度、灰度等參數(shù);動(dòng)態(tài)檢測(cè)的靈敏度參數(shù);撥號(hào)的電話(huà)號(hào)碼;E-mail的服務(wù)器地址、收件人地址、主題等參數(shù);Ftp的地址、端口、用戶(hù)名及密碼等參數(shù); Web服務(wù)器的用戶(hù)名和密碼參數(shù)。n 報(bào)警功能:當(dāng)檢測(cè)范圍內(nèi)有異常時(shí),啟動(dòng)報(bào)警功能。包括:撥打固定電話(huà)或移動(dòng)電話(huà)通知用戶(hù),發(fā)送帶附件的E-mail通知用戶(hù)等。n 數(shù)據(jù)備份:當(dāng)檢測(cè)到異常時(shí),系統(tǒng)將運(yùn)動(dòng)的圖片上傳到Ftp服務(wù)器備份。n 遠(yuǎn)程Web控制:通過(guò)登陸Web服務(wù)器,同本地設(shè)置一樣可以設(shè)置系統(tǒng)的各運(yùn)行參數(shù),實(shí)現(xiàn)了遠(yuǎn)程控制功能。n 遠(yuǎn)程實(shí)時(shí)視頻瀏覽:登陸Web服務(wù)器后,可通過(guò)視頻窗口瀏覽

20、實(shí)時(shí)視頻。n 歷史記錄查詢(xún):登陸Web服務(wù)器后,通過(guò)讀取保存在Ftp服務(wù)器上運(yùn)動(dòng)圖片,在Web界面的視頻窗口顯示,實(shí)現(xiàn)歷史記錄的查詢(xún)。1.3 系統(tǒng)特色n 本系統(tǒng)可不斷地檢測(cè)周?chē)h(huán)境有無(wú)運(yùn)動(dòng)發(fā)生n 嵌入式Web服務(wù)器n 遠(yuǎn)程控制功能n 圖形化的界面,友好的人機(jī)交互n 強(qiáng)大的擴(kuò)展性能第二章 程序的模塊設(shè)計(jì)l 程序設(shè)計(jì)流程:模塊設(shè)計(jì),流程圖,GUI界面,圖像采集,運(yùn)動(dòng)檢測(cè),圖像壓縮,進(jìn)程線(xiàn)程間通信,Web Service, Ftp,E-mail,撥打電話(huà).l 本人承擔(dān)模塊:圖像采集,運(yùn)動(dòng)檢測(cè),圖像壓縮,撥打電話(huà)報(bào)警。2.1 eDog的頂層數(shù)據(jù)流圖:圖2.1 eDog的頂層數(shù)據(jù)流圖2.2 eDog的層

21、次方框圖:圖2.2 eDog的層次方框圖2.3主程序流程圖圖2.3 主程序流程圖第三章 在 Platform Builder定制Windows CE3.1 PB簡(jiǎn)介PB是微軟提供給Windows CE開(kāi)發(fā)人員進(jìn)行基于Windows CE.net平臺(tái)下嵌入式操作系統(tǒng)定制的集成開(kāi)發(fā)環(huán)境。具體說(shuō)來(lái)PB提供了幾個(gè)主要開(kāi)發(fā)特性:n Platform Wizard和BSP Wizard。用來(lái)引導(dǎo)開(kāi)發(fā)人員去創(chuàng)建一個(gè)簡(jiǎn)單的系統(tǒng)平臺(tái)或BSP。n 基礎(chǔ)配置。為各種流行的設(shè)備類(lèi)別預(yù)置的可操作系統(tǒng)基礎(chǔ)平臺(tái),為自定義操作系統(tǒng)的創(chuàng)建提供了一個(gè)起點(diǎn)n 特性目錄。操作系統(tǒng)的可選特性均在特性目錄中,開(kāi)發(fā)人員可以選擇相應(yīng)的特性來(lái)

22、定制操作系統(tǒng)。n 自動(dòng)化的依靠性檢查。特性之間的依賴(lài)關(guān)系是系統(tǒng)自動(dòng)維護(hù)的。n 系統(tǒng)為驅(qū)動(dòng)程序開(kāi)發(fā)提供了基本的測(cè)試工具集Windows CE.net Test Kit。n 內(nèi)核調(diào)試器??梢詫?duì)自定義的操作系統(tǒng)映象進(jìn)行調(diào)試,并且向用戶(hù)提供有關(guān)映象性能的信息。n 導(dǎo)出想到(Export Wizard)??梢韵蚱渌鸓B用戶(hù)導(dǎo)出自定義的目錄特性。n 導(dǎo)出SDK向?qū)?Export SDK Wizard)。n 遠(yuǎn)程工具??蓤?zhí)行同基于Windows CE.net的目標(biāo)設(shè)備有關(guān)的各種調(diào)試任務(wù)和信息收集任務(wù)。n 仿真器。通過(guò)硬件仿真加速和簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā),使用戶(hù)可以在開(kāi)發(fā)工作站上對(duì)平臺(tái)和應(yīng)用程序進(jìn)行調(diào)試。n 應(yīng)用程

23、序調(diào)試器??梢栽谧远x的操作系統(tǒng)映象上對(duì)應(yīng)用程序進(jìn)行調(diào)試。n 提供了對(duì)NET FrameWork Compact Edition的支持。3.2 BSP簡(jiǎn)介BSP又稱(chēng)主板支持軟件包,它是一個(gè)包括啟動(dòng)程序、OEM適配層成年工序(OAL)、標(biāo)準(zhǔn)開(kāi)發(fā)板(SDB)和相關(guān)硬件設(shè)備的驅(qū)動(dòng)程序的軟件包。BSP是基于Windows CE.net平臺(tái)系統(tǒng)的主要部分,它主要由一些源文件和二進(jìn)制文件組成。圖3.1 關(guān)系示意圖3.3 定制Windows CE.1. 新建PB工程,并啟動(dòng)工程向?qū)?. 按需求依次選擇BSP、基本配置結(jié)構(gòu)、定制設(shè)備的方法、基本類(lèi)庫(kù)、應(yīng)用程序、操作系統(tǒng)核心服務(wù)、通信服務(wù)、文件系統(tǒng)、字體、國(guó)家等

24、等3. 向?qū)崾拘畔?,完成工程向?qū)?.4 Windows CE 注冊(cè)表簡(jiǎn)介在Windows CE.net中,注冊(cè)表扮演著很重要的角色,它是一個(gè)系統(tǒng)數(shù)據(jù)庫(kù),存儲(chǔ)著應(yīng)用程序、驅(qū)動(dòng)程序和操作系統(tǒng)的配置信息,通常還存儲(chǔ)著操作系統(tǒng)調(diào)用程序的狀態(tài)信息。注冊(cè)表的結(jié)構(gòu)與磁盤(pán)的邏輯結(jié)構(gòu)相似。Windows CE.net的注冊(cè)表是一個(gè)包括關(guān)鍵字子樹(shù)的集合,它和文件目錄樹(shù)一樣有層次結(jié)構(gòu)。它的注冊(cè)表包括4個(gè)根鍵HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER、HKEY_CLASSES_ROOT和HKEY_USERS。表3.1 Windows CE.net注冊(cè)表根鍵根鍵名鍵值內(nèi)容HKEY_LOC

25、AL_MACHINE硬件及驅(qū)動(dòng)程序配置數(shù)據(jù)HKEY_CURRENT_USER用戶(hù)配置數(shù)據(jù)HKEY_CLASSES_ROOTOLE和文件類(lèi)型匹配配置數(shù)據(jù)HKEY_USERS適用于所有用戶(hù)的存儲(chǔ)數(shù)據(jù)從Windows CE 2.0開(kāi)始,注冊(cè)表就可以存儲(chǔ)在永久性的存儲(chǔ)設(shè)備中,并能夠進(jìn)行讀取。在Windows CE.net中,注冊(cè)表可以在任何一個(gè)文件系統(tǒng)中以一個(gè)文件的形式存在。CE能以基于RAM中堆文件的方式來(lái)實(shí)現(xiàn)注冊(cè)表。如果RAM掉電,且OLM供應(yīng)商未進(jìn)行注冊(cè)表備份,注冊(cè)表數(shù)據(jù)將丟失。3.5 注冊(cè)表編輯器為了系統(tǒng)安全性,Windows CE.net并未為最終用戶(hù)增加注冊(cè)表編輯的功能,所有在Window

26、s CE.net下不能像在9x/2000下那樣用Regedit.exe來(lái)編輯注冊(cè)表。這樣雖然能夠保證用戶(hù)不致因?yàn)殄e(cuò)誤使用注冊(cè)表信息而出現(xiàn)問(wèn)題,但是為了一個(gè)注冊(cè)表參數(shù)的修改就可能要重新編譯整個(gè)操作系統(tǒng)內(nèi)核,這樣會(huì)在時(shí)間上造成浪費(fèi)并降低工作效率。1.根鍵的定義見(jiàn)表3.12.對(duì)注冊(cè)表的限制,見(jiàn)表3.2限制內(nèi)容具體說(shuō)明鍵或值的名字255個(gè)字苻數(shù)據(jù)大小4KB鍵嵌套層次最多16層3Windows CE.net下對(duì)注冊(cè)表操作的API函數(shù)l RegCreateKeyEx;l RegOpenKeyEx;l RegQueryValueEx;l RegSetValueEx;l RegCloseKey;第四章 圖像模

27、塊圖像采集模塊包括圖像采集,運(yùn)動(dòng)檢測(cè),圖像壓縮三個(gè)模塊。它是eDog系統(tǒng)的基礎(chǔ),也是eDog的核心。圖像采集模塊可以獲取被監(jiān)控現(xiàn)場(chǎng)的實(shí)時(shí)圖像,并存成BMP格式;運(yùn)動(dòng)檢測(cè)模塊對(duì)圖像中運(yùn)動(dòng)物體檢測(cè),當(dāng)有運(yùn)動(dòng)物體進(jìn)入監(jiān)視現(xiàn)場(chǎng)時(shí),自動(dòng)保存圖片并發(fā)出警報(bào);圖像壓縮模塊可以在eDog系統(tǒng)要對(duì)圖片進(jìn)行備份時(shí)對(duì)其進(jìn)行格式轉(zhuǎn)換(.JPG)。4.1 視頻采集在現(xiàn)有的攝像頭及其驅(qū)動(dòng)的基礎(chǔ)上,我們?cè)贓VC上針對(duì)我們定制的Windows CE系統(tǒng),開(kāi)發(fā)了eDog的圖形采集模塊。該模塊能夠從監(jiān)控區(qū)域采集圖像并在運(yùn)動(dòng)檢測(cè)模塊的判斷下決定是否DELETE剛SAVE的BMP文件。4.1.1 BMP文件格式BMP是計(jì)算機(jī)系統(tǒng)中最

28、常見(jiàn)的圖像格式,他用RGB三個(gè)通道的深度來(lái)表示一個(gè)象素點(diǎn)的顏色值。計(jì)算機(jī)中一個(gè)典型的BMP文件包含4個(gè)主要部分:BMP文件頭、BMP信息頭、調(diào)色板和位圖數(shù)據(jù)。另外Windows CE中BMP是24位的,也就是說(shuō),RGB三個(gè)通道分別用一個(gè)字節(jié)表示。存儲(chǔ)圖像的具體操作,下面章節(jié)介紹。4.1.2 視頻采集相關(guān)說(shuō)明首先必須向注冊(cè)表中寫(xiě)入攝像頭的驅(qū)動(dòng)信息。HKEY_LOCAL_MACHINEDriversBuiltInQCPCamera“Prefix”=“QCP”“Dll”=“QCP4000.dll”“Order”=dword:1l prefx:設(shè)備文件名l Dll:驅(qū)動(dòng)的文件名l Order:設(shè)備文件

29、名索引² 檢測(cè)設(shè)定視頻源1、 自動(dòng)檢測(cè)攝像頭是否連接好,如果沒(méi)有則應(yīng)彈出一個(gè)提示對(duì)話(huà)框,提示沒(méi)有視頻源。2、 對(duì)捕獲設(shè)備的搜索,并默認(rèn)為L(zhǎng)ogitech QuickCamPro4000 攝像頭。² 捕獲設(shè)置:設(shè)定相關(guān)的參數(shù): 敏感度(Sensibility): 按0100調(diào)整質(zhì)量(Quality): 按0100調(diào)整亮度(Brightness): 按0100調(diào)整對(duì)比度(Contrast): 按0100調(diào)整色調(diào)(Hue):按0100調(diào)整顏色(Color): 按0100調(diào)整頻率:按8fps 幀率設(shè)置捕獲視頻。² 捕獲格式:對(duì)視頻的格式及圖片的格式進(jìn)行設(shè)置:分辨率: 32

30、0 × 240,格式為BMP。² 回放與備份:1、 回放 對(duì)已存在存儲(chǔ)器上的圖片進(jìn)行播放。2、 備份 對(duì)捕獲的圖片進(jìn)行壓縮(.JPG)存儲(chǔ)與備份Ø 指定存儲(chǔ)的Server位置Ø 對(duì)存儲(chǔ)充滿(mǎn)時(shí)采用的方法:將最早存入的刪除并以最新的資料存入。4.1.3 CE的流接口驅(qū)動(dòng)程序流接口驅(qū)動(dòng)程序是以動(dòng)態(tài)鏈接庫(kù)形式存在的,由設(shè)備管理器統(tǒng)一加載,管理和卸載。與具有單獨(dú)目的的內(nèi)部設(shè)備驅(qū)動(dòng)程序相比,所有的流接口驅(qū)動(dòng)程序都是用同一組接口并調(diào)用同一個(gè)函數(shù)集的,我們將這個(gè)函數(shù)集稱(chēng)作流接口函數(shù)。流接口驅(qū)動(dòng)程序是為了連接到基于Windows CE的平臺(tái)的外圍設(shè)備(包括我們的攝像頭)設(shè)

31、計(jì)的。流接口驅(qū)動(dòng)程序的注意認(rèn)為就是把外設(shè)的使用傳遞給應(yīng)用程序,著是通過(guò)把設(shè)備表示為文件系統(tǒng)的一個(gè)特殊文件實(shí)現(xiàn)的。4.1.4 即時(shí)圖像捕捉此模塊用于圖像捕捉,一秒8幀。當(dāng)發(fā)現(xiàn)沒(méi)有運(yùn)動(dòng)發(fā)生的時(shí)候刪除圖片(圖片名按時(shí)間命名。eg.2005052022171401.bmp 表示2005年5月20日22點(diǎn)17分14秒的第一幀)。判斷是否有運(yùn)動(dòng)產(chǎn)生的算法是:定義一個(gè)newest變量存放已保存的最新的圖片名。調(diào)用運(yùn)動(dòng)檢測(cè)類(lèi)若發(fā)現(xiàn)現(xiàn)在捕捉到的圖片和newest的圖片不同,則發(fā)生了運(yùn)動(dòng),保存者張圖片并將newest變?yōu)楝F(xiàn)在圖片的文件名。圖4.1 圖像采集模塊流程圖l 相關(guān)說(shuō)明BOOL M_Estimation(

32、)是運(yùn)動(dòng)檢測(cè)模塊所提供的接口,若發(fā)生運(yùn)動(dòng)返回TRUE,否則返回FALSE。Pic1存之前最新的圖片的文件名。Pic2是存現(xiàn)在的圖片的文件名。1. 變量定義HANDLE hDevice;HDC hDisplay;LPBITMAPINFO pbmi;LPBYTE pBits;HBITMAP hBitmap;HDC hMemory;HBITMAP hBitmap0;2. 創(chuàng)建文件,打開(kāi)設(shè)備。把設(shè)備表示為文件系統(tǒng)的一個(gè)特殊文件。hDevice = CreateFile(TEXT("QCP1:"), 0, 0, NULL, OPEN_EXISTING, 0, NULL);if (hD

33、evice = INVALID_HANDLE_VALUE)return FALSE;注: “QCP1:”為攝像頭的設(shè)備文件名。CE中一個(gè)具體的設(shè)備名稱(chēng)是由設(shè)備文件名前綴和設(shè)備文件名索引組成的,索引是緊隨的那個(gè)數(shù)字,用來(lái)區(qū)別由一個(gè)流接口驅(qū)動(dòng)程序管理的所有設(shè)備。Windows CE.net的設(shè)備文件名前綴由三個(gè)大寫(xiě)字母組成,Windows CE.net使用這三個(gè)字母來(lái)來(lái)識(shí)別與特殊流接口驅(qū)動(dòng)程序相對(duì)應(yīng)的特殊設(shè)備。索引的編號(hào)默認(rèn)從1到9。3. 當(dāng)模塊啟動(dòng)時(shí)執(zhí)行,收到消息WM_PAINT。a. 獲得客戶(hù)區(qū)大小RECT rt;GetClientRect(hWnd, &rt);b. 分配位圖空間/

34、Allocate bitmaphDisplay = GetDC(hWnd);int nInfoSize = sizeof(BITMAPINFOHEADER); / no palettepbmi = (LPBITMAPINFO) LocalAlloc(LPTR, nInfoSize);c. 對(duì)pbmi進(jìn)行初始化pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);pbmi->bmiHeader.biWidth = nWidth; d. 創(chuàng)建設(shè)備無(wú)關(guān)的位圖,程序可以直接寫(xiě)入數(shù)據(jù)并將圖片設(shè)為RGB模式hBitmap = CreateDIBSe

35、ction(hDisplay, pbmi, DIB_RGB_COLORS, (void*)&pBits, NULL, 0);e. 創(chuàng)建一個(gè)兼容的設(shè)備上下文并把位圖數(shù)據(jù)選入它hMemory = CreateCompatibleDC(hDisplay);hBitmap0 = (HBITMAP) SelectObject(hMemory, hBitmap); f. 發(fā)送控制信息,并將數(shù)據(jù)從指定驅(qū)動(dòng)程序傳送到變量中DWORD ulReturn = 0;DeviceIoControl(hDevice, 1, NULL, 0, pBits, (nHeight * nWidth * 3), &

36、;ulReturn, NULL);g. 如果位圖信息正確,顯示位圖if (ulReturn)BitBlt(hDisplay, 0, 0, nWidth, nHeight, hMemory, 0, 0, SRCCOPY);h. 若發(fā)生運(yùn)動(dòng)則把圖像保存, 這里保存圖片的過(guò)程與手動(dòng)抓圖的過(guò)程一樣,不述。見(jiàn)下:i. 調(diào)用運(yùn)動(dòng)檢測(cè)模塊,若沒(méi)有運(yùn)動(dòng)發(fā)生則刪除圖片,否則更新Pic1if(M_Estimation(Pic1,Pic2) / BOOL M_Estimation()是檢查是否發(fā)生運(yùn)動(dòng) DeleteFile(Pic2);else Pic1 = Pic2;4. 手動(dòng)抓圖,當(dāng)模塊獲得消息 WM_KEYD

37、OWN。a. 如果按下PrintScreenIf(LOWORD(wParam) = 0x2C)b. 如果位圖信息錯(cuò)誤,退出if (pbmi = NULL) break;c. 否則,初始化BMP位圖文件頭BITMAPFILEHEADER hdr;PBITMAPFILEHEADER pbi = &hdr;hdr.bfType = 0x4D42;hdr.bfSize = (DWORD) (sizeof(BITMAPFILEHEADER) + pbmi->bmiHeader.biSize + pbmi->bmiHeader.biClrUsed * sizeof(RGBQUAD) +

38、pbmi->bmiHeader.biSizeImage); .d. 獲得系統(tǒng)時(shí)間(CTime:CTime(),在Afx.h聲明),并將其轉(zhuǎn)化為字符型的文件名tmp = CTime();nowYear = (char *)tmp.nYear; nowMonth = (char *)tmp.nMonth;nowDay = (char *)tmp.nDay; nowHour = (char *)tmp.nHour;nowMin = (char *)tmp.nMin; nowSec = (char *)tmp.nSec;if(+frame = 8)frame = 0; /幀記數(shù)從07CStrin

39、g Pic2;Pic2 = Pic2 + nowYear + nowMonth + nowDay + nowHour + nowMin + nowSec + framee. 輸出BMP文件HANDLE hFile = CreateFile(TEXT("saveimagePic2.bmp"),GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);If (hFile = INVALID_HANDLE_VALUE) break;f. 寫(xiě)B(tài)MP的文件頭及信息頭的相關(guān)信息,

40、如果出錯(cuò)則關(guān)閉驅(qū)動(dòng)程序引用實(shí)例DWORD dwWritten;WriteFile(hFile, (LPVOID) &hdr, sizeof(BITMAPFILEHEADER),(LPDWORD) &dwWritten, NULL); WriteFile(hFile, (LPVOID) &pbmi->bmiHeader,sizeof(BITMAPINFOHEADER) + (pbmi->bmiHeader.biClrUsed * sizeof(RGBQUAD), (LPDWORD) &dwWritten, NULL).g. 關(guān)閉驅(qū)動(dòng)程序引用實(shí)例If (

41、hFile != INVALID_HANDLE_VALUE) CloseHandle(hFile);h.刪除名字空間delete Pic2;nowname = NULL;3. 當(dāng)收到WM_DESTROY時(shí),銷(xiāo)毀變量,釋放空間LocalFree(pbmi);SelectObject(hMemory, hBitmap0);DeleteDC(hMemory);DeleteObject(hBitmap);ReleaseDC(hWnd, hDisplay);CloseHandle(hDevice);PostQuitMessage(0);至此,圖像采集模塊的基本流程介紹完畢,上述流程忽略了系統(tǒng)中位圖參數(shù)(

42、如敏感度、亮度等)的設(shè)置。此模塊是eDog最基礎(chǔ)的模塊,它為運(yùn)動(dòng)檢測(cè)提供位圖;同時(shí)調(diào)用運(yùn)動(dòng)檢測(cè)模塊判斷是否保存此時(shí)的位圖。開(kāi)發(fā)過(guò)程原本想用DirectShow開(kāi)發(fā),并對(duì)圖片進(jìn)行適當(dāng)?shù)奶幚?,但是由于EVC平臺(tái)下這方面的資料欠缺,所以無(wú)法進(jìn)行。另外,攝像頭驅(qū)動(dòng)的相關(guān)信息必須寫(xiě)入注冊(cè)表,否則每次接入攝像頭必須手動(dòng)設(shè)置。關(guān)于注冊(cè)表的相關(guān)知識(shí),3.4節(jié)已經(jīng)介紹,攝像頭驅(qū)動(dòng)的注冊(cè)信息在4.12節(jié)已出。4.2 運(yùn)動(dòng)檢測(cè)因?yàn)锽MP文件存儲(chǔ)的是每個(gè)象素點(diǎn)的RBG三個(gè)通道的深度值,因此我們的運(yùn)動(dòng)檢測(cè)模塊采用計(jì)算幀差絕對(duì)值的方法。對(duì)于檢測(cè)圖像區(qū)域,用下一幀的每一點(diǎn)象素的三個(gè)通道的深度值減去前一幀的象素的相同通道的深

43、度值,當(dāng)差異過(guò)大時(shí),我們便定義這一個(gè)點(diǎn)發(fā)生了變化,并令設(shè)定的變量自加一。當(dāng)這個(gè)變量的計(jì)數(shù)值超過(guò)閥值T的時(shí)候時(shí)則保存這個(gè)時(shí)刻捕捉的圖片創(chuàng)建報(bào)警進(jìn)程定時(shí)通知用戶(hù)。4.2.1計(jì)算幀差絕對(duì)值 (1)其中, f(x,y,i)、f(x,y,j)為序列圖像在i,j時(shí)刻點(diǎn)(x,y)的通道的深度值,T為用戶(hù)定義的閥值,閥值T的大小決定運(yùn)動(dòng)檢測(cè)的靈敏度,同時(shí)幀間隔也會(huì)對(duì)檢測(cè)靈敏度有影響。當(dāng)幀間變化和超過(guò)閥值T時(shí),則判定有運(yùn)動(dòng)發(fā)生。這種方法運(yùn)算簡(jiǎn)單,檢測(cè)速度快,易于實(shí)現(xiàn)。但易受光線(xiàn)、天氣、小目標(biāo)物體的干擾,檢測(cè)準(zhǔn)確度低。實(shí)現(xiàn)時(shí)我們把一張圖片分成8 * 6 48個(gè)區(qū)域。對(duì)于其中的每個(gè)圖像區(qū)域S,判別條件是: (2)其

44、中,0 f(x,y,i), f(x,y,i) 255; T域值。表示統(tǒng)計(jì)差值超過(guò)閥值T的像素點(diǎn)的數(shù)目,當(dāng)數(shù)目大于固定值N時(shí),則判定有運(yùn)動(dòng)發(fā)生,本算法不僅從閾值的變化上進(jìn)行判斷同時(shí)又從變化的點(diǎn)數(shù)上予以限制,同時(shí)為了避免天氣、光線(xiàn)等因素發(fā)生變化時(shí),產(chǎn)生的誤判斷。我們?cè)冢?)式的基礎(chǔ)上,進(jìn)一步改進(jìn)算法,增加了一個(gè)附加判別條件(3)。(3)光線(xiàn)、天氣變化會(huì)對(duì)整個(gè)圖像產(chǎn)生影響,變化比較均勻,分布于整個(gè)區(qū)域。若是有人闖入則變化是局部的個(gè)別的。通過(guò)判斷四個(gè)角區(qū)域S1,S2,S3,S4的象素深度變化大小即可來(lái)判斷是否為光線(xiàn)等分布均勻的干擾信號(hào)。當(dāng)S1,S2,S3,S4四個(gè)區(qū)域都滿(mǎn)足(3)式時(shí),說(shuō)明深度變化是光

45、線(xiàn)的影響,不是有物體運(yùn)動(dòng),不用啟動(dòng)報(bào)警。該判斷條件提高了檢測(cè)的準(zhǔn)確度,降低了誤報(bào)警率,同時(shí)也容易實(shí)現(xiàn),運(yùn)算量增加不大,對(duì)檢測(cè)速度影響不大。4.2.2 eDog中運(yùn)動(dòng)檢測(cè)模塊的具體實(shí)現(xiàn)方法將圖片分為8 × 6 的48塊。每一塊為一個(gè)區(qū)分別計(jì)算,一張圖片為320 ×240 大小。則每個(gè)區(qū)為40 × 40象素的圖片。先用3.2.1的式(3)的算法對(duì)4個(gè)角的區(qū)域進(jìn)行判斷,如果是光線(xiàn)產(chǎn)生的影響則沒(méi)有運(yùn)動(dòng)發(fā)生,否則判斷其余區(qū)域。橫向縱向每四個(gè)點(diǎn)進(jìn)行一次比較,也就是每行進(jìn)行10次比較。當(dāng)發(fā)現(xiàn)一個(gè)區(qū)中差異點(diǎn)大于一個(gè)用戶(hù)指定的敏感度N時(shí)(4,6,8,12,15),這塊區(qū)域所有的點(diǎn)都

46、為差異點(diǎn),這個(gè)區(qū)域發(fā)生運(yùn)動(dòng)。當(dāng)發(fā)生運(yùn)動(dòng)的區(qū)域個(gè)數(shù)超過(guò)某個(gè)值時(shí),我們認(rèn)定有運(yùn)動(dòng)發(fā)生。在差異點(diǎn)的判斷上,用的是象素差異的方法。每4個(gè)象素取出的顏色值,從中取出每一點(diǎn)的紅綠藍(lán)三種通道的深度值。由于自然界光線(xiàn)等外在環(huán)境影響,不能單純的比較象素值的不同,便判定此點(diǎn)為差異點(diǎn)。必須允許存在一定微小的變化。之所以將320 × 240的全域,分為8 × 6的48的小區(qū)域??梢詽M(mǎn)足圖片的比例要求。在敏感度參數(shù)的問(wèn)題上,經(jīng)過(guò)多次試驗(yàn)敏感度低的時(shí)候取值15,敏感度較低取值12,敏感度中取值8,敏感度較高的時(shí)候取值為6。高的時(shí)候取值4??梢苑謩e滿(mǎn)足近景,中遠(yuǎn)景,和遠(yuǎn)景等不同距離和環(huán)境的要求(eg.

47、沒(méi)有人的時(shí)候)。圖4.2 P_Contrast()的流程圖圖4.3 運(yùn)動(dòng)檢測(cè)模塊l 相關(guān)說(shuō)明BOOL M_Estimation()是運(yùn)動(dòng)檢測(cè)模塊所提供的接口,若發(fā)生運(yùn)動(dòng)返回TRUE,否則返回FALSE。Pic1存之前最新的圖片的文件名。Pic2是存現(xiàn)在的圖片的文件名。a. 必須包含的頭文件include “Windows.h”include “Afxwin.h”b. 定義的閥值和敏感度#define T 自定義(閥值)#define N 自定義(變化的象素個(gè)數(shù))#define Q自定義(產(chǎn)生變化的區(qū)域個(gè)數(shù))c. 定義對(duì)比象素點(diǎn)的函數(shù)P_Contrast()BOOL P_Contrast(HBI

48、TMAP hdc1,HBITMAP hdc2,int i, int j)COLORREFcolor1,color2;BYTEr1,r2,g1,g2,b1,b2;IntDif2=0;intx = y =0;/用來(lái)控制步進(jìn),對(duì)比相應(yīng)的象素for(每隔3個(gè)pixel)color1 = GetPixel(hdc1, i * 40 + x, j * 40 + y); r1 = GetRValue(color1); g1 = GetGValue(color1); b1 = GetBValue(color1);color2 = GetPixel(hdc2, i * 40 + x, j * 40 + y);r

49、1 = GetRValue(color2); g1 = GetGValue(color2); b1 = GetBValue(color2);if(abs(r1-r2) > T| abs(g1-g2) > T| abs(b1-b2) > T)Dif2+; if(Dif2 > N)return TURE; else return FALSE;d. 模塊的主要函數(shù)BOOL M_Estimation(HBITMAP hdc1,HBITMAP hdc2)int Dif1 0;COLORREFcolor1,color2;/判斷for(四個(gè)對(duì)角區(qū)域)If(P_Contrast(Pic

50、1.hdc,Pic2.hdc),i, j)Dif1+;if(Dif1 = 4)return FALSE;/ Dividing into 8*6 areas, every 3 pixels are compared with oncefor(除了4個(gè)角區(qū)域的其余區(qū)域)If(P_Contrast(Pic1.hdc,Pic2.hdc)Dif1+;if(Dif1 >= Q)Save_BMP();Beep();return TURE;return FALSE;運(yùn)動(dòng)檢測(cè)模塊是判斷是否有運(yùn)動(dòng)產(chǎn)生的模塊。我們采用幀差絕對(duì)值的方法,這種方法運(yùn)算簡(jiǎn)單,檢測(cè)速度快,易于實(shí)現(xiàn)。但易受光線(xiàn)、天氣、小目標(biāo)物體的干擾

51、,檢測(cè)準(zhǔn)確度低。因此在此基礎(chǔ)上我們又對(duì)算法進(jìn)行優(yōu)化。因?yàn)楣饩€(xiàn)對(duì)圖像的影響是片狀的,換句話(huà)說(shuō)如果是光線(xiàn)引起的顏色深度的變化,每個(gè)模塊的變化值應(yīng)該差不多。所以我們利用公式三,在用幀差絕對(duì)值算法前我們先判斷4個(gè)角區(qū)域的深度變化值。如果4個(gè)區(qū)域的變化值都很大,則我們認(rèn)定是光線(xiàn)的影響,而非運(yùn)動(dòng)產(chǎn)生,否則保存圖片,啟動(dòng)報(bào)警模塊。4.3 圖像壓縮IJG的全稱(chēng)是Independent JPEG Group(獨(dú)立JPEG小組),該組織以C語(yǔ)言源代碼的形式提供應(yīng)用廣泛、完全免費(fèi)的JPEG解碼/編碼函數(shù)庫(kù),編譯后生成二進(jìn)制格式的LIB文件,可以連接到其他編譯型語(yǔ)言的程序中。其實(shí)對(duì)于Windows程序員來(lái)說(shuō),這個(gè)函數(shù)

52、庫(kù)最難的地方就是對(duì)編譯選項(xiàng)的設(shè)置。圖像壓縮模塊主要實(shí)現(xiàn)在運(yùn)動(dòng)發(fā)生的情況下,對(duì)新的BMP文件進(jìn)行壓縮,并傳到ftp上進(jìn)行備份的功能。因?yàn)镴peg庫(kù)體系通過(guò)兩個(gè)頭文件進(jìn)行配置的:jconfig.h和jmorecfg.h。所以我們要移植JpegLib要先做下列修改:1. 代碼#ifndef XMD_Htypedef long INT32#endif要改為#if !defined(XMD_H) && !defined(_BASETSD_H_)typedef long INT32#endif2. 代碼#ifdef NEED_FAR_POINTERS#define FAR far#else

53、#define FAR#endif要改為#ifdef NEED_FAR_POINTERS#define FAR#else#define FAR#endif3. 在我們的工程中,我們必須添加JpegLib的項(xiàng)目文件到工作區(qū)。圖4.4 圖像壓縮的算法流程圖l 相關(guān)說(shuō)明若有運(yùn)動(dòng)產(chǎn)生,換句話(huà)說(shuō)有BMP文件生成,則新建一個(gè)進(jìn)程進(jìn)行圖像壓縮。DWORD WINAPI Bmp2Jpg(LPVOID lpvoid)a. 必須包含的頭文件#include "jpeg.cpp"b. 模塊的主要代碼void BmpToJpg(String BmpName, 

54、;String JpgName)    /將bmp文件轉(zhuǎn)換為jpg文件  Graphics:TBitmap *MyBMP = new Graphics:TBitmap;          MyBMP->LoadFromFile(BmpName); /圖片位置      TJPEGImage *MyJPE

55、G = new TJPEGImage;      MyJPEG->Assign(MyBMP);      MyJPEG->CompressionQuality = 70; /設(shè)置壓縮比,比例為 1.100 ,默認(rèn)70     MyJPEG->Compress();     

56、0;MyJPEG->SaveToFile(JpgName);    /保存路徑      delete MyJPEG;              delete MyBMP; c. 創(chuàng)建新進(jìn)程,啟動(dòng)ftp模塊,上傳圖片進(jìn)行備份。第五章 撥打電話(huà)模塊5.1 串口通信一些Windows CE設(shè)備可以通過(guò)串行連接與其他計(jì)算機(jī)、打印機(jī)、調(diào)制解調(diào)器或者全球定位系統(tǒng)(GPS)衛(wèi)星通信。串行I/O是Windows CE支持的最簡(jiǎn)單的通信形式,通常用于兩個(gè)設(shè)備之間直接的、點(diǎn)對(duì)點(diǎn)的連接。串行I/O以各種各樣的設(shè)備硬件連接出現(xiàn),但是,大多數(shù)Windows CE設(shè)備使用串口線(xiàn)或PC卡設(shè)備,象調(diào)制解調(diào)器或者紅外(IR) 接收機(jī)等。通過(guò)串

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論