

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、視頻監(jiān)控系統(tǒng)程序設(shè)計(jì)說(shuō)明書(shū)1引言編寫(xiě)目的本文主要說(shuō)明視頻監(jiān)控系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。本文詳細(xì)介紹了系統(tǒng)中各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)細(xì)節(jié)以及關(guān)鍵技術(shù)的應(yīng)用。其中,對(duì)每一個(gè)模塊會(huì)有相應(yīng)的文字說(shuō)明以及相關(guān)設(shè)計(jì)流程圖給出。項(xiàng)目背景本項(xiàng)目是對(duì)本實(shí)驗(yàn)課程中所介紹的課程的綜合應(yīng)用。本項(xiàng)目主要針對(duì)unix/linux系統(tǒng)編程和基于C+語(yǔ)言的GUI程序設(shè)計(jì)-QT進(jìn)行針對(duì)性訓(xùn)練。旨在加強(qiáng)學(xué)生對(duì)unix/linux系統(tǒng)編程的理解和應(yīng)用,提高學(xué)生的實(shí)踐能力、編程能力以及分析問(wèn)題和解決問(wèn)題的能力。并且通過(guò)對(duì)本系統(tǒng)中客戶端的設(shè)計(jì)和實(shí)現(xiàn),讓學(xué)生體會(huì)和熟悉面向?qū)ο缶幊痰乃枷牒鸵话惴椒ā6x本系統(tǒng)=視頻監(jiān)控系統(tǒng)本文=視頻監(jiān)控系統(tǒng)設(shè)計(jì)說(shuō)
2、明書(shū)2總體設(shè)計(jì)需求概述本系統(tǒng)是基于C/S架構(gòu)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),主要由負(fù)責(zé)圖形采集和傳輸?shù)腟erver端和負(fù)責(zé)監(jiān)控(顯示圖像)的Client端構(gòu)成。本系統(tǒng)Server端是基于Linux系統(tǒng)的網(wǎng)絡(luò)服務(wù)類(lèi)軟件,主要由數(shù)據(jù)采集和網(wǎng)絡(luò)服務(wù)兩部分構(gòu)成。數(shù)據(jù)采集部分利用v4l2(videoforlinuxII)對(duì)網(wǎng)絡(luò)攝像頭進(jìn)行控制和訪問(wèn)并且獲取由攝像頭捕獲到的視頻數(shù)據(jù),然后再由網(wǎng)絡(luò)服務(wù)部分將獲取到的視頻數(shù)據(jù)進(jìn)行封裝成http幀并利用http協(xié)議發(fā)送到客戶端。由于本系統(tǒng)Server端的數(shù)據(jù)發(fā)送是基于http協(xié)議的,所以本系統(tǒng)客戶端沒(méi)有平臺(tái)限制,只要支持以上的平臺(tái)就可以訪問(wèn)本系統(tǒng)的服務(wù)。而且,本系統(tǒng)服務(wù)可以直
3、接通過(guò)web瀏覽器訪問(wèn)(對(duì)firefox瀏覽器支持最佳)。為了提高傳輸效率我們還需要進(jìn)行客戶端軟件的開(kāi)發(fā),由于對(duì)客戶端沒(méi)有平臺(tái)要求,所在Windows、Linux、Android、等平臺(tái)都可以實(shí)現(xiàn)。本文主將以linux為例用Qt實(shí)現(xiàn)一個(gè)簡(jiǎn)易的客戶端軟件。軟件結(jié)構(gòu)serverclientdatacapturevideoservicedevicdconfigcreateservergetdatawaitconnectmovedatadatatransfer圖視頻監(jiān)控系統(tǒng)結(jié)構(gòu)圖3程序描述Server:數(shù)據(jù)采集功能配置設(shè)備并從設(shè)備中獲取圖像數(shù)據(jù)。根據(jù)設(shè)備信息利用v4I2(videoforlinuxII
4、)通過(guò)ioctl對(duì)USB攝像頭進(jìn)行配置,打開(kāi)設(shè)備抓取功能開(kāi)始采集并轉(zhuǎn)存數(shù)據(jù),采集完畢以后關(guān)閉設(shè)備功能,最后關(guān)閉設(shè)備。技術(shù)概要本模塊涉及到大量的對(duì)于設(shè)備的I/O操作,主要通過(guò)videoforlinuxII(v4l2)框架對(duì)設(shè)備進(jìn)行設(shè)置和控制。其中包括一些特殊的結(jié)構(gòu)體屬性的賦值以及一些特殊控制標(biāo)記的實(shí)際意義需要詳細(xì)查閱V4I2提供的AP。程序邏輯本節(jié)主要以流程圖的方式介紹Server端數(shù)據(jù)采集模塊的主要程序邏輯設(shè)計(jì)。開(kāi)始開(kāi)始end圖Server端數(shù)據(jù)采集流程圖圖主要描述了服務(wù)端數(shù)據(jù)采集部分的主要流程和編程步驟。下面將對(duì)每一個(gè)步驟進(jìn)行詳細(xì)的介紹:1打開(kāi)設(shè)備:打開(kāi)視頻設(shè)備(這里指我們的USB攝像頭)。
5、利用linux系統(tǒng)提供的接口函數(shù)open來(lái)對(duì)設(shè)備進(jìn)行打開(kāi)的操作。圖對(duì)這一過(guò)程進(jìn)行了詳細(xì)的描述。2查詢?cè)O(shè)備信息(或者叫獲取設(shè)備信息):查詢?cè)O(shè)備驅(qū)動(dòng)相關(guān)信息以及和視頻采集相關(guān)的參數(shù),根據(jù)獲取到的信息初步判斷設(shè)備類(lèi)型以及將要處理的數(shù)據(jù)類(lèi)型。利用ioctl函數(shù)以及v4l2提供的v4l2_capbility和v4l2_format兩個(gè)結(jié)構(gòu)體來(lái)保存獲取到的設(shè)備驅(qū)動(dòng)信息和幀信息。詳細(xì)流程見(jiàn)圖。VIDIOC_G_FMT等屬性的含義需查詢V4I2提供的AP。fd=-1、ffd=open()start圖打開(kāi)設(shè)備子圖2structv4l2_capabilitycapstructv4l2formatfmtw1mems
6、et(&cap,0,sizeof(cap);memset(&fmt,0,sizefo(fmt);=V4L2_BUF_TYPE_VIDEO_CAPTURE=V4L2_FIELD_ANYgetinfo:圖獲取設(shè)備信息子圖3. 設(shè)置采集方式設(shè)置視頻設(shè)備(這里指USB攝像頭)的采集方式,例如采集圖像的分辨率,幀的采集速率(既每秒采集幀的數(shù)量)等選項(xiàng)的設(shè)置。用到v4l2中的v4l2_format和v4l2_streamparm兩個(gè)結(jié)構(gòu)體以及VIDIOC_S_PARM口VIDIOC_SFMT兩個(gè)標(biāo)記,相關(guān)介紹請(qǐng)查閱v4l2框架的API信息。實(shí)現(xiàn)步驟詳見(jiàn)圖。/本模塊用到的宏定義#defineWIDTH320
7、structv4l2_formatfmt2#defineHEIGTH240structv4l2_streamparmparm#defineFPS5memset(&parm,0,sizeof(parm);memset(&fmt,0,sizefo(fmt);=V4L2_BUF_TYPE_VIDEO_CAPTURE=V4L2_FIELD_ANY=WIDTH圖設(shè)置采集方式子圖4. 申請(qǐng)緩存向驅(qū)動(dòng)申請(qǐng)幾塊緩沖區(qū)(此處緩沖區(qū)是由內(nèi)核管理的,所以需要申請(qǐng)),用來(lái)存放設(shè)備采集到的數(shù)據(jù)。用到v4l2中的v4l2_requestbuffer結(jié)構(gòu)體和VIDIOC_REQBUF標(biāo)記來(lái)向設(shè)備驅(qū)動(dòng)申請(qǐng)緩沖區(qū)。實(shí)現(xiàn)步驟詳見(jiàn)
8、圖structv4l2_requestbuffer3rb/本模塊用到的宏定義/表示申請(qǐng)緩沖區(qū)的數(shù)量#defineNB_BUFFER5memset(&rb,0,sizeof(rb);=NB_BUFFER=V4L2_BUF_TYPE_VIDEO_CAPTURE=V4L2_MEMORY_MMAPioctl(fd,VIDIOC_REQBUFS,&rb)NerrorYreturn4圖申請(qǐng)緩存子圖5. 設(shè)置緩存屬性對(duì)申請(qǐng)到的緩存進(jìn)行設(shè)置,包括設(shè)置緩存的訪問(wèn)方式(使用內(nèi)存映射訪問(wèn)方式),對(duì)緩存進(jìn)行映射,建立緩存隊(duì)列。4structv4l2_bufferbufunsignedchar*mem_listmem_
9、list=(uchar*)calloc(NB_BUFFER,sizeof(uchar);inti=0;圖設(shè)置緩存子圖5.處理數(shù)據(jù)通過(guò)對(duì)設(shè)備設(shè)置VIDIOC_STREAMO和VIDIOC_STREAMOF來(lái)控制設(shè)備開(kāi)始/停止采集數(shù)據(jù),在設(shè)置開(kāi)始和停止之間通過(guò)對(duì)緩存的輪換讀取獲得設(shè)備采集到的數(shù)據(jù)并對(duì)其進(jìn)行處理(這里的數(shù)據(jù)處理主要做對(duì)圖像壓縮和傳輸兩部分工作會(huì)在后面做詳細(xì)介紹)。通過(guò)利用VIDIOC_QBU和VIDIOC_DQBU兩個(gè)控制位來(lái)對(duì)緩沖隊(duì)列進(jìn)行入/出隊(duì)列的控制,從而獲得設(shè)備采集到的數(shù)據(jù)。詳見(jiàn)圖。5structv4l2_bufferbufmemset(&buf,0,sizeof(buf);
10、=V4L2_BUF_TYPE_VIDEO_CAPTURE=V4L2_MEMORY_MMAPioctl(fd,VIDIOC_STREAMON,&buf)數(shù)據(jù)處理ioctl(fd,VIDIOC_STREAMON,&buf)Nerror圖數(shù)據(jù)處理子圖Server:數(shù)據(jù)處理功能完成圖像壓縮,建立web服務(wù)供客戶端訪問(wèn)。對(duì)攝像頭采集到的數(shù)據(jù)進(jìn)行一次huffman編碼把圖片轉(zhuǎn)換成jpeg或者jpg格式(這個(gè)步驟也可以在客戶端完成,但是瀏覽器不支持此種實(shí)現(xiàn))。建立一個(gè)基于TCP/IP的web服務(wù)器,當(dāng)有客戶端連接本服務(wù)時(shí)利用HTTP協(xié)議發(fā)送轉(zhuǎn)換好的數(shù)據(jù)技術(shù)概要本模塊主要涉及到對(duì)原始圖像數(shù)據(jù)的壓縮以及基于C語(yǔ)
11、言的網(wǎng)絡(luò)和多線程的編程。關(guān)于圖像壓縮的部分在本項(xiàng)目中不做研究所以只是簡(jiǎn)單的調(diào)用已有接口。對(duì)于網(wǎng)絡(luò)服務(wù)功能以及多任務(wù)的處理功能的實(shí)現(xiàn)都是本項(xiàng)目要涉及到的重要內(nèi)容,這里需要對(duì)基于C語(yǔ)言的TCP編程和多線程編程比較熟悉,可以參考UNIX環(huán)境高級(jí)編程。程序邏輯本模塊的作用實(shí)際是上一個(gè)模塊中的“數(shù)據(jù)處理”部分。由于設(shè)備采集到到的每一幀數(shù)據(jù)經(jīng)過(guò)huffman編碼以后會(huì)變成一張完整的圖片,所以我們?cè)谙旅姘l(fā)送數(shù)據(jù)的部分要做一個(gè)簡(jiǎn)單的封裝,下面分別給出程序流程圖(圖)和數(shù)據(jù)封裝格式(圖)。startYendContent-type:typeContent-length:length空行圖數(shù)據(jù)處理http響應(yīng)頭:
12、boundary幀頭部圖片數(shù)據(jù)boundary幀頭部圖片數(shù)據(jù)boundaryJFContent-type:typeContent-length:lengthi空行圖服務(wù)端幀封裝結(jié)構(gòu)Client:獲取數(shù)據(jù)功能向服務(wù)器發(fā)送請(qǐng)求,根據(jù)服務(wù)器的響應(yīng)信息接收數(shù)據(jù)并根據(jù)響應(yīng)信息按照一定的格式接收數(shù)據(jù)。與服務(wù)器建立基于TCP的連接,向服務(wù)器發(fā)送http請(qǐng)求,接收服務(wù)器返回的響應(yīng)信息,技術(shù)概要本模塊主要涉及到基于TCP的客戶端編程,關(guān)于各戶端編程的方法比較靈活,在語(yǔ)言框架選擇方面也比較廣泛,像JavaGUIMFC、QT等都可以實(shí)現(xiàn)。在這里我們QT為例來(lái)實(shí)現(xiàn)客戶端程序。程序邏輯這里主要涉及到TCP客戶端編程和對(duì)
13、服務(wù)器數(shù)據(jù)分較程式化有統(tǒng)一的編程步驟和一般流程,數(shù)據(jù)分割需要根據(jù)服務(wù)端數(shù)據(jù)發(fā)送情況的來(lái)確定。絡(luò)編程流程割,TCP客戶端的編程比TCP網(wǎng)絡(luò)編程流程(圖)和數(shù)據(jù)分割步驟(圖圖TCP網(wǎng)ocket()socket。bind()listen()I?從socket中讀取一行onnect()SERVERrecl三次握CLIENTrite()accept()ad()Nite()Yose()ose()start圖客戶端數(shù)據(jù)分割流程Client:顯示功能通過(guò)信號(hào)控制QT控件刷新圖片。我們看到連續(xù)的圖像是由一張一張的單獨(dú)的圖片不斷刷新形成的,所以本模塊主要功能是接收上一模塊的數(shù)據(jù)準(zhǔn)備好信號(hào)后將新的圖像數(shù)據(jù)加載到控件并刷新控件,從而形成連續(xù)的圖像。技術(shù)概要本模塊主要涉及到QT的編程和使用,包括對(duì)一些控件的控制和線程控制由于循環(huán)顯示圖像時(shí)候會(huì)阻塞圖形界面,所以用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇財(cái)經(jīng)職業(yè)技術(shù)學(xué)院《打印創(chuàng)新設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津醫(yī)科大學(xué)臨床醫(yī)學(xué)院《電視節(jié)目播音主持實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 邵陽(yáng)職業(yè)技術(shù)學(xué)院《結(jié)構(gòu)設(shè)計(jì)軟件應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春職業(yè)技術(shù)學(xué)院《三維動(dòng)畫(huà)MAYA》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)江師范學(xué)院《SAS與統(tǒng)計(jì)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年重慶市建筑安全員考試題庫(kù)附答案
- 長(zhǎng)春師范大學(xué)《公共管理與公共政策實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安航空學(xué)院《老年認(rèn)知癥的篩查與干預(yù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京科技職業(yè)學(xué)院《會(huì)展設(shè)計(jì)實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 襄陽(yáng)職業(yè)技術(shù)學(xué)院《現(xiàn)代環(huán)境分析技術(shù)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省邳州市2021-2022學(xué)年人教版四年級(jí)上冊(cè)期末數(shù)學(xué)試卷(含答案)
- 大數(shù)據(jù)分析及應(yīng)用實(shí)踐全書(shū)課件匯總整本書(shū)電子教案(最新)
- 教練技術(shù)一階段講義(共59頁(yè))
- 第3章-系統(tǒng)模型與模型化
- 精品課程建設(shè)驗(yàn)收自評(píng)報(bào)告
- 福建省義務(wù)教育課程設(shè)置及比例(修訂)
- 一年級(jí)上冊(cè)生字卡片帶拼音組詞可打印01637
- 未成年人需辦銀行卡證明(模板)
- 建設(shè)項(xiàng)目職業(yè)病防護(hù)設(shè)施設(shè)計(jì)專(zhuān)篇編制導(dǎo)則
- 員工考勤流程圖
- 出口加工區(qū)外匯管理培訓(xùn)(ppt49)
評(píng)論
0/150
提交評(píng)論