freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于linux、qt的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-全文預(yù)覽

  

【正文】 的支持與關(guān)懷。另外在不久的未來(lái),視頻監(jiān)控系統(tǒng)還可具有安防互動(dòng)功能,與各種傳感器,控制器鏈接,實(shí)現(xiàn)自動(dòng)目標(biāo)跟蹤等功能。v4L2 是Linux 操作系統(tǒng)中的內(nèi)核驅(qū)動(dòng),主要是關(guān)于視頻的開(kāi)發(fā)。圖14 啟動(dòng)系統(tǒng)效果圖(左:客戶端,右:服務(wù)端)圖15 客戶端準(zhǔn)備連接時(shí)效果圖(左:客戶端,右:服務(wù)端)圖16 系統(tǒng)網(wǎng)絡(luò)連接后效果圖(左:客戶端,右:服務(wù)端) 系統(tǒng)測(cè)試結(jié)果測(cè)試結(jié)果:功能基本實(shí)現(xiàn),目前未發(fā)現(xiàn)Bug。2) 如上一步正常則運(yùn)行客戶端程序,也就是采用QT設(shè)計(jì)的圖形化界面,其實(shí)在沒(méi)有開(kāi)啟服務(wù)端程序時(shí),也可以開(kāi)啟客戶端,但是不能獲取到視頻數(shù)據(jù)。測(cè)試分為黑盒測(cè)試與白盒測(cè)試,其主要區(qū)別是:黑盒測(cè)試只需對(duì)其功能、性能等進(jìn)行測(cè)試就行了而不需要深入去了解程序的具體實(shí)現(xiàn)代碼與軟件的功能實(shí)現(xiàn)過(guò)程;而白盒測(cè)試則需要了解程序代碼的編寫(xiě)以及實(shí)現(xiàn)的過(guò)程,通過(guò)對(duì)底層代碼的了解從而找出程序的不足指出以及Bug。開(kāi)始連接服務(wù)器No出錯(cuò)處理連接成功等待信號(hào)No響應(yīng)信號(hào)處理收到信號(hào)數(shù)據(jù)信號(hào)加載數(shù)據(jù)并刷新控件圖13 客戶端視頻渲染模塊流程圖4 視頻監(jiān)控系統(tǒng)測(cè)試 系統(tǒng)測(cè)試目標(biāo)軟件測(cè)試是一門(mén)充滿了智慧和挑戰(zhàn)性的科學(xué),它涉及到了工具技術(shù)的使用、方法論、過(guò)程論等諸多技術(shù)領(lǐng)域。由于循環(huán)顯示圖像時(shí)候會(huì)阻塞圖形界面,所以此時(shí)應(yīng)該用一個(gè)單獨(dú)的線程來(lái)完成刷新圖像的工作。提示錯(cuò)誤是:bind error 綁定出錯(cuò)。 技術(shù)概要客戶端獲取數(shù)據(jù)模塊主要涉及到基于TCP/IP協(xié)議的客戶端編程,關(guān)于客戶端編程的方法比較靈活,在編程語(yǔ)言框架的選擇方面也比較廣泛,其實(shí)有多種編程語(yǔ)言都可以實(shí)現(xiàn)客戶端程序的編寫(xiě),我選用的是用QT編程來(lái)實(shí)現(xiàn),以此為例來(lái)實(shí)現(xiàn)客戶端程序的編寫(xiě)。圖9 服務(wù)器端數(shù)據(jù)處理流程圖圖10 服務(wù)器端數(shù)據(jù)幀封裝結(jié)構(gòu)圖 客戶端:數(shù)據(jù)獲取 模塊功能描述客戶端獲取視頻數(shù)據(jù),主要利用socket連接方式獲取。視頻監(jiān)控系統(tǒng)通過(guò)對(duì)基于C語(yǔ)言的socket網(wǎng)絡(luò)編程和多線程編程熟悉,可以參考《UNIX環(huán)境高級(jí)編程》中的網(wǎng)絡(luò)編程部分,就可以實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)器的功能以及多任務(wù)的處理功能。為了實(shí)現(xiàn)C/S架構(gòu)的同時(shí),也支持B/S架構(gòu),我們就在服務(wù)器端進(jìn)行這些數(shù)據(jù)的處理。圖8 視頻數(shù)據(jù)處理流程圖 服務(wù)器:數(shù)據(jù)處理 模塊功能描述完成圖像壓縮、編碼、封裝。傳返回參數(shù) 5進(jìn)入enable()函數(shù)里,聲明兩個(gè)變量,type和ret進(jìn)行初始化,ret = ioctl(fd, VIDIOC_STREAMON, amp。傳返回參數(shù)4在接收到參數(shù)時(shí),聲明結(jié)構(gòu)體,區(qū)別名為 buf在堆區(qū)用calloc()函數(shù)開(kāi)辟內(nèi)存并且定義一個(gè)整型變量 i ;賦初值為 0Noi NB_BUFFER ?Yes對(duì)結(jié)構(gòu)體進(jìn)行初始化建立內(nèi)存映射:mem_list[ i ] = mmap( )在開(kāi)辟的緩存空間內(nèi)建立內(nèi)存映射區(qū)域并且建立緩存隊(duì)列YesNo error ?Noerrorreturnreturn 5圖7 緩沖區(qū)設(shè)置流程圖 6) 視頻圖像采集到的數(shù)據(jù)處理 設(shè)置視頻設(shè)備屬性時(shí),需要用到這兩個(gè)宏定義VIDIOC_STREAMON和VIDIOC_STREAMOFF。本模塊用到的宏定義有define NB_BUFFER 5表示申請(qǐng)緩沖區(qū)數(shù)量傳返回參數(shù) 3struct v4l2_requestbuffer rb調(diào)用結(jié)構(gòu)體 rb斷言:作用初始化結(jié)構(gòu)體 rb設(shè)置結(jié)構(gòu)體的屬性和初值創(chuàng)建申請(qǐng)緩沖區(qū),用函數(shù):ioctl()errorreturn error ?return傳返回參數(shù) 4圖6 申請(qǐng)緩沖區(qū)流程圖5) 設(shè)置緩沖區(qū)屬性緩存申請(qǐng)到了后,對(duì)申請(qǐng)到的緩存進(jìn)行必要的設(shè)置。FD = 2該模塊中所用到的宏定義:define WIDTH 16的整數(shù)倍define HEIGTH 16的整數(shù)倍define fps 5(緩存的張數(shù)設(shè)置)引用的結(jié)構(gòu)體:struct v4l2_formatstruct v4l2_streamparm初始化結(jié)構(gòu)體斷言設(shè)置struct v4l2_formatstruct v4l2_streamparm用 memset()對(duì)結(jié)構(gòu)體:struct v4l2_formatstruct v4l2_streamparm內(nèi)容進(jìn)行初始化設(shè)置。cap, 0, sizeof(cap));memset(amp。利用ioctl()函數(shù)以及v4l2提供的兩個(gè)結(jié)構(gòu)體v4l2_capbility和v4l2_format來(lái)保存獲取到的USB攝像頭設(shè)備驅(qū)動(dòng)信息和數(shù)據(jù)幀信息。FD是USB攝像頭設(shè)備文件描述符,簡(jiǎn)單的來(lái)說(shuō),F(xiàn)D只是一個(gè)int型(即整數(shù)),在調(diào)用Linux系統(tǒng)編程中的open()函數(shù)時(shí)的返回值。圖2是視頻采集流程圖,描述了服務(wù)器(server)端視頻數(shù)據(jù)采集的主要編程步驟。14) VIDIOC_STREAMOFF:結(jié)束視頻顯示函數(shù)。10) VIDIOC_G_CROP:讀取視頻信號(hào)的邊框。6) VIDIOC_G_FMT:設(shè)置當(dāng)前驅(qū)動(dòng)的視頻捕獲格式。2) VIDIOC_QUERYBUF:將分配出來(lái)的數(shù)據(jù)緩存區(qū)映射到物理地址。這一模塊需要查看、配置設(shè)備的屬性并從設(shè)備中獲取圖像數(shù)據(jù)。還有連接Server與Cclient的就是采用Socket網(wǎng)絡(luò)服務(wù)器的搭建,這主要采用的是Linux環(huán)境網(wǎng)絡(luò)編程。4G時(shí)代的到來(lái),使得我們可以將實(shí)時(shí)視頻監(jiān)控發(fā)展到移動(dòng)終端上,這將更加方便我們的日常生活。視頻監(jiān)控系統(tǒng)的設(shè)計(jì)主要以Linux為例用QT實(shí)現(xiàn)一個(gè)簡(jiǎn)易的客戶端軟件,同時(shí)還可以用瀏覽器訪問(wèn),既同時(shí)實(shí)現(xiàn)了C/S架構(gòu)與B/S架構(gòu)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。由于視頻監(jiān)控系統(tǒng)的服務(wù)器(server)端視頻數(shù)據(jù)是通過(guò)協(xié)議發(fā)送的,所以此系統(tǒng)客戶端沒(méi)有平臺(tái)限制。VIDIOC_STREAMOFF10) 關(guān)閉視頻設(shè)備。type) 0) { printf(VIDIOC_STREAMON error\n)。struct v4l2_requestbuffers6) 申請(qǐng)物理內(nèi)存從內(nèi)核申請(qǐng)到幀緩沖空間,并將其映射到用戶空間去,然后可以直接對(duì)采集到的視頻數(shù)據(jù)幀進(jìn)行操作了,不必再去進(jìn)行復(fù)制緩沖區(qū)內(nèi)容了。 errno == EAGAIN)。 do{ ret= ioctl(fd, VIDIOC_QUERYSTD, amp。__fd:USB視頻設(shè)備的設(shè)備ID號(hào),例如調(diào)用了系統(tǒng)open()函數(shù)來(lái)打開(kāi)視頻通道后返回的videoFd__request:具體的命令標(biāo)識(shí)符。V4L2有以下編程模式:a. 設(shè)置采集方式:打開(kāi)視頻設(shè)備后,可以設(shè)置該視頻設(shè)備的屬性,例如放縮、裁剪等。甚至還包括了正則表達(dá)式的處理功能。QT模塊化程度非常高是因?yàn)樗蟹浅:玫姆庋b機(jī)制,而且具有非常好的可重用性,這將非常方便了應(yīng)用程序開(kāi)發(fā)用戶進(jìn)行軟件開(kāi)發(fā)。QT是一個(gè)非常好的C++圖形用戶界面UI設(shè)計(jì)應(yīng)用程序框架。Linux系統(tǒng)可以運(yùn)行在不同的硬件平臺(tái),這個(gè)對(duì)于我們這些軟件開(kāi)發(fā)者來(lái)說(shuō)無(wú)疑是件非常好的事,可以進(jìn)行各種平臺(tái)的系統(tǒng)移植。 視頻監(jiān)控系統(tǒng)的組成視頻監(jiān)控系統(tǒng)大致可分為三大模塊:視頻數(shù)據(jù)信號(hào)的采集部分、網(wǎng)絡(luò)傳輸部分以及遠(yuǎn)程客戶端視頻的渲染部分。隨著科技的發(fā)展,工廠模式已經(jīng)走上了現(xiàn)代化之路,那管理上也應(yīng)該得以更近。稅務(wù)系統(tǒng)主要是報(bào)稅服務(wù)大廳監(jiān)控;目前視頻監(jiān)控系統(tǒng)應(yīng)用主要有以下應(yīng)用領(lǐng)域:b、系統(tǒng)具有幾乎無(wú)限的無(wú)縫擴(kuò)展能力需要增加設(shè)備時(shí)只要將IP地址進(jìn)行擴(kuò)充
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1