版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科生畢業(yè)論文(設(shè)計(jì))</p><p> 題 目:基于機(jī)器視覺的運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)設(shè)計(jì) </p><p> 專業(yè)代碼: </p><p> 作者姓名: </p><p> 學(xué) 號(hào):
2、 </p><p> 單 位: 物理科學(xué)與信息工程學(xué)院 </p><p> 指導(dǎo)教師: </p><p> 2012年 5月 20日</p><p><b> 目 錄</b></p><p><b>
3、摘 要2</b></p><p><b> 引言4</b></p><p> 第一章 基于OpenCV的運(yùn)動(dòng)目標(biāo)跟蹤實(shí)驗(yàn)平臺(tái)5</p><p> 1.1 OpenCV介紹5</p><p> 1.2運(yùn)動(dòng)物體的檢測(cè)與跟蹤6</p><p> 1.3 Win
4、dows多線程編程7</p><p> 1.4實(shí)驗(yàn)結(jié)果10</p><p><b> 1.5展望10</b></p><p> 第二章 機(jī)器視覺、.NET與C#11</p><p> 2.1機(jī)器視覺介紹10</p><p> 2.2.net與C#簡(jiǎn)介12</p>
5、<p> 2.1.1.net與C#的概念12</p><p> 2.1.2.net與C#的特點(diǎn)12</p><p><b> 2.3小結(jié)15</b></p><p> 第三章 運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)的圖像處理單元設(shè)計(jì)16</p><p> 3.1. 視頻運(yùn)動(dòng)目標(biāo)跟蹤器的總體結(jié)構(gòu)16</p&
6、gt;<p> 3.2.圖像處理模塊設(shè)計(jì)16</p><p> 3.2.1 圖像處理模塊的組成16</p><p> 3.2.2. 中值濾波16</p><p> 3.2.3圖像邊緣檢測(cè)17</p><p> 3.2.4 SAD匹配跟蹤模塊的設(shè)計(jì)18</p><p><b>
7、 3.3總結(jié)18</b></p><p><b> 總結(jié)19</b></p><p><b> 參考文獻(xiàn)20</b></p><p><b> 致 謝21</b></p><p><b> 摘 要</b></p>
8、<p> 運(yùn)動(dòng)目標(biāo)的檢測(cè)跟蹤在機(jī)器人視覺、監(jiān)控測(cè)量和視頻壓縮編碼等等方面有著廣泛的應(yīng)用,是近年來的一個(gè)研究熱點(diǎn)。本文設(shè)計(jì)了一個(gè)利用OpenCV軟件的基于機(jī)器視覺的運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái),對(duì)攝像頭視野中的運(yùn)動(dòng)目標(biāo)進(jìn)行實(shí)時(shí)檢測(cè)和跟蹤,并留下編程和硬件接口。</p><p> 運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)的圖像處理單元對(duì)于系統(tǒng)跟蹤的準(zhǔn)確性與實(shí)時(shí)性至關(guān)重要。文中將跟蹤系統(tǒng)采集到的動(dòng)態(tài)圖像序列經(jīng)過預(yù)處理后送入圖像處
9、理單元進(jìn)行中值濾波、邊緣檢測(cè)以及匹配跟蹤,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的信息跟蹤。該文對(duì)傳統(tǒng)的中值濾波算法進(jìn)行改進(jìn),同時(shí)對(duì)Sobel邊緣檢測(cè)算法進(jìn)行改進(jìn),減少了系統(tǒng)的運(yùn)算時(shí)間,使系統(tǒng)的圖像處理單元具有更快的處理速度和更高的實(shí)時(shí)性。</p><p> 關(guān)鍵詞 : 目標(biāo)跟蹤;OpenCV; C#;ASIC;邊緣檢測(cè)</p><p><b> Abstract</b></p&g
10、t;<p> Moving targets detection in the robot vision, monitoring tracking measurement and video compression coding, and so on in a wide range of applications, in recent years is a hot research topic. This paper de
11、signs an OpenCV using software based on machine vision of the moving object detection and tracking experimental platform, camera moving object in view of real-time detection and tracking, and leave programming and hardwa
12、re interface. </p><p> Abstract:The image processing unit is key to the precision and timeliness of the moving target tracking system.The system collects the dynamic image and preproeesses it,then sends the
13、 results to the image processing unit to accomplish the operation of median filter,edge detection an d match tracking.The paper introduces an improved median filter algorithm and a novel edge detection algorithm based on
14、 Sobel algorithm.After manipulated as above,the image processing unit decreases the times of oper</p><p> Key words: Target Tracking; OpenCV; C#; ASIC; Edge Detection</p><p> 基于機(jī)器視覺的運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)設(shè)計(jì)
15、</p><p><b> 引言</b></p><p> 目前,數(shù)字圖像處理在國(guó)民生產(chǎn)中起到日益重要的作用,對(duì)其的研究也日益廣泛和深入。OpenCV程序庫(kù)作為數(shù)字圖像研究的軟件助手,具有簡(jiǎn)單易用、功能強(qiáng)大、移植方便等優(yōu)越性能。本文首先實(shí)驗(yàn)設(shè)計(jì)了一個(gè)基于OpenCV的運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái),對(duì)從攝像頭采集來的圖像數(shù)據(jù)進(jìn)行實(shí)時(shí)的分析,從而實(shí)現(xiàn)對(duì)運(yùn)動(dòng)物體的檢測(cè)與跟蹤
16、。實(shí)驗(yàn)旨在了解OpenCV的性能,學(xué)習(xí)OpenCV的使用方法;嘗試并逐漸熟悉圖像處理,特別是運(yùn)動(dòng)目標(biāo)跟蹤方面的知識(shí);以及進(jìn)一步提高Windows操作系統(tǒng)下使用C語言和C++編程的能力。</p><p> C# 是由微軟公司開發(fā)的一種面向?qū)ο蟮男滦途幊陶Z言。它保留了 C/C++原有的強(qiáng)大功能,并且繼承了 C/C++的靈活性,而且它又同 Visual Basic 一樣具有簡(jiǎn)單的語法和高效的開發(fā)能力。對(duì)于編寫數(shù)字圖像
17、處理算法的程序員來說,相比主流的應(yīng)用軟件 C++,C# 不失為一種更佳的選擇。</p><p> 第一章 基于OpenCV的運(yùn)動(dòng)目標(biāo)跟蹤實(shí)驗(yàn)平臺(tái)</p><p> 1.1 OpenCV介紹</p><p> OpenCV是Intel開源計(jì)算機(jī)視覺庫(kù)(Open Computer Vision)的簡(jiǎn)稱。它由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,實(shí)現(xiàn)了圖像處理和
18、計(jì)算機(jī)視覺方面的很多通用算法。OpenCV 擁有包括300多個(gè)C函數(shù)的跨平臺(tái)的中、高層API。它不依賴與其它的外部庫(kù),盡管也可以使用某些外部庫(kù)。OpenCV具有以下特點(diǎn):</p><p><b> 1.開放源碼</b></p><p> 2.基于Intel處理器指令集開發(fā)的優(yōu)化代碼</p><p> 3.統(tǒng)一的結(jié)構(gòu)和功能定義</p&
19、gt;<p> 4.強(qiáng)大的圖像和矩陣運(yùn)算能力</p><p> 5.方便靈活的用戶接口</p><p> 6.支持MS-Windows和Linux操作系統(tǒng)</p><p> 由于有了以上性能特點(diǎn),OpenCV函數(shù)庫(kù)功能強(qiáng)大,簡(jiǎn)單易用,移植也很方便,不失為學(xué)生和科研人員進(jìn)行數(shù)字圖像處理方面學(xué)習(xí)和研究的好工具。</p><p&g
20、t; 1.2運(yùn)動(dòng)物體的檢測(cè)與跟蹤</p><p> 數(shù)字圖像處理中,運(yùn)動(dòng)物體的檢測(cè)和跟蹤在機(jī)器人視覺、監(jiān)控測(cè)量和視頻壓縮編碼等方面有著廣泛的應(yīng)用,是近年來的一個(gè)研究熱點(diǎn)。隨著研究的深入,應(yīng)用于運(yùn)動(dòng)物體跟蹤的算法也越來越多:從最簡(jiǎn)單的“幀差法”,到“背景消減法”到“模板匹配法”,到帶有預(yù)測(cè)功能的“卡爾曼濾波”和“粒子濾波”等算法,都在不斷地提高對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)和跟蹤的準(zhǔn)確性和高效性。</p><
21、;p> 本平臺(tái)在進(jìn)行運(yùn)動(dòng)物體檢測(cè)跟蹤時(shí)所采用的算法是:首先利用“幀差法”檢測(cè)出初始的運(yùn)動(dòng)目標(biāo);一旦認(rèn)為此目標(biāo)合法,便根據(jù)目標(biāo)在HSI(色調(diào)、飽和度、強(qiáng)度)空間中H通道的色調(diào)特性,利用“連續(xù)適應(yīng)性均值移動(dòng)算法(CamShift)”,對(duì)目標(biāo)進(jìn)行跟蹤。</p><p> CamShift算法簡(jiǎn)述如下:首先,在圖像HSI空間中計(jì)算H通道(色彩通道)分量的1D直方圖;接著,利用此1D直方圖將原圖改建成2D概率分布
22、圖;第三步,計(jì)算出目標(biāo)區(qū)域的重心;第四部,利用經(jīng)典的“Mean Shift”算法,不斷平移調(diào)整窗口中心到與目標(biāo)重心重合;第五步,將上一幀的窗口大小和中心,作為下一幀Mean Shift算法搜索窗口的初始值,在下一幀中繼續(xù)Mean Shift運(yùn)算。</p><p> 圖1.2CamShift流程</p><p> 上述運(yùn)動(dòng)物體檢測(cè)和跟蹤的算法運(yùn)算量小,跟蹤效果好。只要初始抓取目標(biāo)無誤,并
23、且在色彩空間上目標(biāo)與背景有一定偏差,視頻跟蹤便能夠達(dá)到相當(dāng)?shù)臏?zhǔn)確度。更好的一點(diǎn)是,此算法在跟蹤同一場(chǎng)境內(nèi)多個(gè)運(yùn)動(dòng)目標(biāo)其中的一個(gè)時(shí)的效果,是其它同樣計(jì)算復(fù)雜度的算法所難以比擬的。</p><p> 1.3 Windows多線程編程</p><p> 為了達(dá)到良好的實(shí)時(shí)性能,充分利用CPU資源,本平臺(tái)采用多線程并發(fā)處理模式進(jìn)行編程。在Windows操作系統(tǒng)下,線程與進(jìn)程調(diào)度都有著
24、一套封裝好的方法,各線程輪流占用CPU資源。既然沒有多個(gè)CPU進(jìn)行真正的程序“并發(fā)”執(zhí)行,多線程編程要做的就是如何利用線程的“休眠”事件,合理充分地使用資源,以達(dá)到提高程序運(yùn)行效率的目的。</p><p> 本平臺(tái)中,程序由兩個(gè)線程組成:main線程和GetImage線程。Main線程作為主線程,它啟動(dòng)了GetImage線程;除此之外main線程的主要功能就是利用OpenCV函數(shù)庫(kù),對(duì)從攝像頭獲取的圖像數(shù)據(jù)進(jìn)行
25、分析處理;此外main線程還負(fù)責(zé)獲取用戶輸入信息。GetImage線程的主要工作就是循環(huán)地從攝像頭讀取數(shù)據(jù)放到緩存中,以供main線程分析。在這當(dāng)中,GetImage線程往緩存中寫數(shù)據(jù)與從緩存中讀數(shù)據(jù)將不可避免地操作同一塊緩存;為防止數(shù)據(jù)讀寫沖突出錯(cuò),兩線程在操作這塊緩存時(shí)都必須上鎖。這在本平臺(tái)程序中是通過“互斥量”來實(shí)現(xiàn)的。另外,為防止main線程重復(fù)地分析同一幀圖像,要求main線程必須等待GetImage線程的一個(gè)信號(hào)才能進(jìn)行數(shù)據(jù)
26、讀取和分析,這在平臺(tái)程序中是通過Wait/Object的方式來實(shí)現(xiàn)的。</p><p> 程序流程圖如圖1.3.1、圖1.3.2所示</p><p> 圖1.3.1 GetImage線程</p><p><b> 圖1.3.2主線程</b></p><p><b> 1.4實(shí)驗(yàn)結(jié)果 </b>
27、</p><p> 經(jīng)過實(shí)驗(yàn)證明,基于OpenCV的運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái)可以在實(shí)時(shí)顯示圖像的基礎(chǔ)上,實(shí)時(shí)檢測(cè)和跟蹤運(yùn)動(dòng)目標(biāo),并且檢測(cè)和跟蹤具有較高的魯棒性。在跟蹤過程中,即時(shí)目標(biāo)保持靜止,程序也不會(huì)丟失對(duì)目標(biāo)的跟蹤。檢測(cè)跟蹤結(jié)果如圖1.4.1所示:</p><p> 圖1.4.1檢測(cè)跟蹤結(jié)果</p><p><b> 1.5展望</b>
28、;</p><p> 本實(shí)驗(yàn)設(shè)計(jì)的基于OpenCV的目標(biāo)檢測(cè)、跟蹤平臺(tái),由于其較低的計(jì)算復(fù)雜度和較高的魯棒性,不僅可用于智能吸塵器的控制;也可用于其它基于全地圖路徑規(guī)劃的機(jī)器人領(lǐng)域,比如:收割、搜救、測(cè)繪、探傷等等場(chǎng)合。因此本平臺(tái)具有廣泛的應(yīng)用前景。</p><p> 第二章 .NET與C#</p><p><b> 2.1機(jī)器視覺介紹</b&
29、gt;</p><p><b> 2.1.1 概述</b></p><p> 機(jī)器視覺就是用機(jī)器代替人眼來做測(cè)量和判斷。機(jī)器視覺系統(tǒng)是指通過機(jī)器視覺產(chǎn)品(即圖像攝取裝置,分 CMOS 和CCD 兩種)將被攝取目標(biāo)轉(zhuǎn)換成圖像信號(hào),傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號(hào);圖像系統(tǒng)對(duì)這些信號(hào)進(jìn)行各種運(yùn)算來抽取目標(biāo)的特征,進(jìn)而根據(jù)判別的
30、結(jié)果來控制現(xiàn)場(chǎng)的設(shè)備動(dòng)作。</p><p> 機(jī)器視覺系統(tǒng)的特點(diǎn)是提高生產(chǎn)的柔性和自動(dòng)化程度。在一些不適合于人工作業(yè)的危險(xiǎn)工作環(huán)境或人工視覺難以滿足要求的場(chǎng)合,常用機(jī)器視覺來替代人工視覺;同時(shí)在大批量工業(yè)生產(chǎn)過程中,用人工視覺檢查產(chǎn)品質(zhì)量效率低且精度不高,用機(jī)器視覺檢測(cè)方法可以大大提高生產(chǎn)效率和生產(chǎn)的自動(dòng)化程度。而且機(jī)器視覺易于實(shí)現(xiàn)信息集成,是實(shí)現(xiàn)計(jì)算機(jī)集成制造的基礎(chǔ)技術(shù)。</p><p&g
31、t;<b> 2.1.2基本結(jié)構(gòu)</b></p><p> 一個(gè)典型的工業(yè)機(jī)器視覺系統(tǒng)包括:光源、鏡頭、 相機(jī)(包括CCD 相機(jī)和COMS相機(jī))、圖像處理單元(或圖像捕獲卡)、圖像處理軟件、監(jiān)視器、通訊 / 輸入輸出單元等。</p><p><b> 2.1.3工作原理</b></p><p> 機(jī)器視覺檢測(cè)系統(tǒng)采
32、用CCD照相機(jī)將被檢測(cè)的目標(biāo)轉(zhuǎn)換成圖像信號(hào),傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號(hào),圖像處理系統(tǒng)對(duì)這些信號(hào)進(jìn)行各種運(yùn)算來抽取目標(biāo)的特征,如面積、數(shù)量、位置、長(zhǎng)度,再根據(jù)預(yù)設(shè)的允許度和其他條件輸出結(jié)果,包括尺寸、角度、個(gè)數(shù)、合格 / 不合格、有 / 無等,實(shí)現(xiàn)自動(dòng)識(shí)別功能。</p><p> 2.2.net與C#簡(jiǎn)介</p><p> 2.2.1.ne
33、t與C#的概念</p><p> .NET就是微軟的用來實(shí)現(xiàn)XML,Web Services,SOA(面向服務(wù)的體系結(jié)構(gòu)service-oriented architecture)和敏捷性的技術(shù)。對(duì)技術(shù)人員,想真正了解什么是.NET,必須先了解.NET技術(shù)出現(xiàn)的原因和它想解決的問題,必須先了解為什么他們需要XML,Web Services 和 SOA。技術(shù)人員一般將微軟看成一個(gè)平臺(tái)廠商。微軟搭建技術(shù)平臺(tái),而技術(shù)
34、人員在這個(gè)技術(shù)平臺(tái)之上創(chuàng)建應(yīng)用系統(tǒng)。從這個(gè)角度,.NET也可以如下來定義:.NET是微軟的新一代技術(shù)平臺(tái),為敏捷商務(wù)構(gòu)建互聯(lián)互通的應(yīng)用系統(tǒng),這些系統(tǒng)是基于標(biāo)準(zhǔn)的,聯(lián)通的,適應(yīng)變化的,穩(wěn)定的和高性能的。從技術(shù)的角度,一個(gè).NET應(yīng)用是一個(gè)運(yùn)行于.NET Framework之上的應(yīng)用程序。(更精確的說,一個(gè).NET應(yīng)用是一個(gè)使用.NET Framework類庫(kù)來編寫,并運(yùn)行于公共語言運(yùn)行時(shí) Common Language Runtime之上
35、的應(yīng)用程序。)如果一個(gè)應(yīng)用程序跟.NET Framework無關(guān),它就不能叫做.NET程序。比如,僅僅使用了XML并不就是.NET應(yīng)用,僅僅使用SOAP SDK調(diào)用一個(gè)Web Se</p><p> C#(讀作C sharp):是由微軟公司的Anders Hejlsberg和 Scott Willamette領(lǐng)導(dǎo)的開發(fā)小組專門為.NET平臺(tái)設(shè)計(jì)的語言。C#由C語言和C++派生而來,繼承了其強(qiáng)大的性能,同時(shí)又以.
36、NET 框架類庫(kù)作為基礎(chǔ),擁有類似Visual Basic的快速開發(fā)能力?!∷梢允钩绦騿T移植到.NET上。這種移植對(duì)于廣大的程序員來說是比較容易的,因?yàn)镃#從C,C++和Java發(fā)展而來,它采用了這三種語言最優(yōu)秀的特點(diǎn),并加入了它自己的特性。</p><p> 2.2.2.net與C#的特點(diǎn)</p><p> Asp.net是一種動(dòng)態(tài)網(wǎng)站高級(jí)編程語言。Asp.net是一種建立在公共語
37、言運(yùn)行庫(kù)上的編程框架,可用于服務(wù)器上開發(fā)強(qiáng)大的web應(yīng)用程序。asp.net不但執(zhí)行效率高,對(duì)代碼的控制也做的很好。并且支持web controls 功能和多種語言。以提高安全性,以管理性和高擴(kuò)展性。生產(chǎn)效率,使用asp.net服務(wù)器控件和包含很多現(xiàn)有控件,可以輕松的創(chuàng)建asp.net網(wǎng)頁(yè)和應(yīng)用程序。靈活性和可擴(kuò)展性,很多asp.net功能都可以擴(kuò)展。這樣可以輕松的將自定義功能集成到應(yīng)用程序中。安全性,現(xiàn)在相web應(yīng)用程序添加身份驗(yàn)證和
38、授權(quán)非常簡(jiǎn)單。完整性,可以創(chuàng)建解決實(shí)時(shí)web開發(fā)挑戰(zhàn)的端對(duì)端方案。</p><p> 1.GC垃圾回收機(jī)制</p><p> 垃圾回收機(jī)制,作為CLR最大的亮點(diǎn)之一,使得傳統(tǒng)的Native語言(c/c++)程序員"徹底"擺脫了一直影響編程質(zhì)量的內(nèi)存泄漏問題,引得大家無數(shù)的好奇和關(guān)注。</p><p><b> 2.反射機(jī)制<
39、/b></p><p> 審查元數(shù)據(jù)并收集關(guān)于它的類型信息的能力。元數(shù)據(jù)(編譯以后的最基本數(shù)據(jù)單元)就是一大堆的表,當(dāng)編譯程序集或者模塊時(shí),編譯器會(huì)創(chuàng)建一個(gè)類定義表,一個(gè)字段定義表,和一個(gè)方法定義表等。</p><p><b> 3.泛型編程</b></p><p> .NET 2.0的System.Collections.Gene
40、rics 命名空間包含了泛型集合定義。 靈活應(yīng)用泛型可以充分發(fā)揮代碼威力,不用重復(fù)定義各類方法和無節(jié)制的類型重載</p><p><b> 4.網(wǎng)絡(luò)編程</b></p><p> 網(wǎng)絡(luò)編程方面的改進(jìn)包括以下內(nèi)容:</p><p> 針對(duì)Windows身份驗(yàn)證的安全改進(jìn)體現(xiàn)在幾個(gè)類中,包括System.Net.HttpWebRequest,
41、System.Net.HttpListener,System.Net.Mail.SmtpClient,System.Net.Security.SslStream和 System.Net.Security.NegotiateStream。在Windows 7和Windows Server 2008 R2中運(yùn)行的應(yīng)用程序可以使用擴(kuò)展保護(hù)功能。</p><p><b> 5.工作流</b><
42、;/p><p> Windows通信基礎(chǔ)實(shí)現(xiàn)了消息管理方面的增強(qiáng)并提供與Windows工作流基礎(chǔ)的無縫集成。WF提供的改進(jìn)體現(xiàn)在性能、可擴(kuò)展性、工作流建模以及一個(gè)更新的可視化設(shè)計(jì)器等方面。</p><p><b> 6.并行計(jì)算</b></p><p> .NET框架 4針對(duì)編寫多線程和異步代碼引入了一個(gè)新的編程模式,從而極大地簡(jiǎn)化了應(yīng)用程序
43、和庫(kù)開發(fā)者的編程。此新的模式可以使開發(fā)人員以一種自然的方式來編寫高效的,良好粒度的,可擴(kuò)展的并行代碼,而不必直接使用線程或線程池等。新的System.Threading.Tasks命名空間和其他相關(guān)類型支持這種新模式。并行LINQ(PLINQ),作為L(zhǎng)INQ to Objects的一種并行實(shí)現(xiàn),能夠通過聲明性語法支持類似的功能。</p><p> 7. 托管擴(kuò)展性框架</p><p>
44、 托管擴(kuò)展性框架(MEF)是.NET框架4中的一個(gè)新庫(kù),幫助您構(gòu)建可擴(kuò)展的和可組合式應(yīng)用程序。MEF可以讓您指定在一個(gè)應(yīng)用程序中的擴(kuò)展點(diǎn),給其他擴(kuò)展的應(yīng)用程序提供服務(wù),以及創(chuàng)建可擴(kuò)展應(yīng)用程序所使用的部件等。</p><p><b> 8.委托機(jī)制</b></p><p> C#使用一種委托模型來實(shí)現(xiàn)事件。事件的處理方法不必在將生成事件的類中定義。這種機(jī)制有許多優(yōu)勢(shì)
45、。它既有普遍性,又很靈活。設(shè)想應(yīng)用程序中有兩個(gè)按鈕,但這兩個(gè)按鈕的作用不同。如果事件處理程序被綁定到事件源,我們可能必須寫兩個(gè)派生的按鈕類,每個(gè)派生類有自己的事件處理程序。</p><p> C#在帶來對(duì)應(yīng)用程序的快速開發(fā)能力的同時(shí),并沒有犧牲C與C++程序員所關(guān)心的各種特性。它忠實(shí)地繼承了C和C++的優(yōu)點(diǎn)。C#是專門為.NET應(yīng)用而開發(fā)出的語言。這從根本上保證了C#與.NET框架的完美結(jié)合。在.NET運(yùn)行庫(kù)的
46、支持下,.NET框架的各種優(yōu)點(diǎn)在C#中表現(xiàn)得淋漓盡致。簡(jiǎn)潔的語法、精心地面向?qū)ο笤O(shè)計(jì)、與Web的緊密結(jié)合、完整的安全性與錯(cuò)誤處理、版本處理技術(shù)、靈活性與兼容性。</p><p> C#是事件的驅(qū)動(dòng)的,完全面向?qū)ο蟮目梢暬幊陶Z言,我們可以使用集成開發(fā)環(huán)境來編寫C#程序。編程序更重要的一點(diǎn)是要找到解決問題的方法就是算法,才能達(dá)到快速、準(zhǔn)確解決問題的目的。算法就是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的、一步一步的、規(guī)則的、精確
47、的、無歧義的、總步數(shù)有限的描述。</p><p> 我們不能孤立地使用C#語言,而必須和.NET Framework一起考慮。C#編譯器專門用于.NET,這表示用C#編寫的所有代碼總是在.NET Framework中運(yùn)行。對(duì)于C#語言來說,可以得出兩個(gè)重要的結(jié)論:</p><p> (1) C#的結(jié)構(gòu)和方法論反映了.NET基礎(chǔ)方法論。</p><p> (2)
48、 在許多情況下,C#的特定語言功能取決于.NET的功能,或依賴于.NET基類。</p><p> C#是一種相當(dāng)新的編程語言,C#的重要性體現(xiàn)在以下兩個(gè)方面:</p><p> 它是專門為與Microsoft的.NET Framework一起使用而設(shè)計(jì)的。.NET Framework是一個(gè)功能非常豐富的平臺(tái),可開發(fā)、部署和執(zhí)行分布式應(yīng)用程序。 </p><p>
49、 C#是一種基于現(xiàn)代面向?qū)ο笤O(shè)計(jì)方法的語言,在設(shè)計(jì)它時(shí),Microsoft還吸取了其他類似語言的經(jīng)驗(yàn),這些語言是近20年來面向?qū)ο笠?guī)則得到廣泛應(yīng)用后才開發(fā)出來的。</p><p> C#的特點(diǎn): 確定性、可行性、有窮性、輸入性、輸出性算法的描述方法很多有自然語言(如英語、漢語)、圖形或符號(hào)等描述。C#是Microsoft專門為使用.NET平臺(tái)而創(chuàng)建的,事實(shí)上C#是.NET開發(fā)中最好的一門語言。C#是一種使用簡(jiǎn)
50、單,功能強(qiáng)大,表達(dá)力豐富的全新語言。如果拋開一切非技術(shù)方面的因素,C# 無疑是這個(gè)星球上有史以來最好的編程語言,它幾乎集中了所有關(guān)于軟件開發(fā)和軟件工程研究的最新成果:面向?qū)ο?、類型安全、組件技術(shù)、自動(dòng)內(nèi)存管理、跨平臺(tái)異常處理等。</p><p><b> 2.3小結(jié)</b></p><p> 本章主要介紹了機(jī)器視覺的概念、基本結(jié)構(gòu)、工作原理等內(nèi)容以及asp.net
51、軟件的開發(fā)環(huán)境、特點(diǎn)以及c#語言的一些基本概念和優(yōu)點(diǎn),從而為接下來的設(shè)計(jì)提供理論基礎(chǔ)。</p><p> 第三章 運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)的圖像處理單元設(shè)計(jì)</p><p> 3.1. 視頻運(yùn)動(dòng)目標(biāo)跟蹤器的總體結(jié)構(gòu)</p><p> 視頻運(yùn)動(dòng)目標(biāo)跟蹤器的總體結(jié)構(gòu)是由圖像采集模塊、圖像緩存模塊、圖像處理模塊、圖像實(shí)時(shí)顯示模塊4部分組成,其系統(tǒng)功能圖如圖3.1.1所示。視
52、頻采集模塊的功能是對(duì)模擬視頻數(shù)據(jù)進(jìn)行解碼并捕獲圖像;圖像緩存模塊的功能主要將采集到的大量視頻圖像數(shù)據(jù)進(jìn)行緩存;圖像處理模塊進(jìn)行圖像預(yù)處理,運(yùn)動(dòng)目標(biāo)跟蹤和圖像后處理;圖像實(shí)時(shí)顯示模塊實(shí)現(xiàn)圖像后處理的實(shí)時(shí)顯示。</p><p> 圖3.1.1 系統(tǒng)總體結(jié)構(gòu)框圖</p><p> 3.2.圖像處理模塊設(shè)計(jì)</p><p> 3.2.1 圖像處理模塊的組成</p
53、><p> 由于CCD攝像頭輸入的圖像信號(hào)不可避免引入噪聲,并且圖像本身存在著空間和幅度的量化誤差,所以在設(shè)計(jì)中需要對(duì)輸入的圖像數(shù)據(jù)進(jìn)行濾波處理。在設(shè)計(jì)中,圖像處理模塊劃分為中值濾波、邊緣檢測(cè)、SAD匹配跟蹤3個(gè)模塊,其結(jié)構(gòu)框圖如圖3.2.1所示。</p><p> 圖3.2.1 圖像處理模塊框圖</p><p> 3.2.2. 中值濾波</p>&
54、lt;p> 中值濾波 是某一點(diǎn)的值用該點(diǎn)的1個(gè)鄰域中各點(diǎn)值的中間值代替,這個(gè)鄰域通常被稱為窗口。中值濾波在圖像處理中,首先需選1個(gè)含有奇數(shù)點(diǎn)的窗口w,將這個(gè)窗口在圖像上掃描,把該窗口中所含的數(shù)據(jù)進(jìn)行排序,取中間值作為該點(diǎn)的灰度值,這樣可以很好地消除圖像中的噪聲。</p><p> 通常來說,采用中值濾波需要對(duì)鄰域窗口內(nèi)的像素?cái)?shù)值進(jìn)行排序。排序的方法有很多種,不同的排序會(huì)導(dǎo)致不同的處理速度,而這其中用的較
55、多的排序法是冒泡法 。假設(shè)該窗口擁有n個(gè)像素,如果采用冒泡法需要做n(n一1)/2次兩兩比較操作。文中對(duì)傳統(tǒng)的中值濾波算法進(jìn)行改進(jìn),對(duì)傳統(tǒng)方法進(jìn)行了改進(jìn),通過分組比較的方法找出其中的最大值、最小值和中間值,避免了逐個(gè)比較操作。這種方法相比傳統(tǒng)的方法避免了大量比較操作,從而減少了邏輯資源的使用。文中以3×3濾波窗口為例,按下述進(jìn)行排序:</p><p> (1)每行按最小數(shù)值、中間數(shù)值和最大數(shù)值排序。&
56、lt;/p><p> (2)將每一步排序所得到的最小數(shù)值組、中間值組和最大數(shù)值組分別按最小值、中間值和最大值排序。</p><p> (3)對(duì)上一步所得到的最小數(shù)值組的最大值、中間數(shù)值組的中間值和最大數(shù)值組中的最小值排序,最后得到中間值。</p><p> 依據(jù)上述算法對(duì)3×3的濾波窗口進(jìn)行排序,要想得到最后的中間值必須進(jìn)行19次兩兩比較,采用傳統(tǒng)的冒泡
57、法得到所需的中間值則至少需要30次比較運(yùn)算。相對(duì)于傳統(tǒng)算法而言,改進(jìn)后的中值濾波算法可以提高運(yùn)算速度,有利于提高系統(tǒng)的圖像處理速度。</p><p> 3.2.3圖像邊緣檢測(cè)</p><p> 圖像邊緣是圖像最基本的特征之一,其中包含著有價(jià)值的目標(biāo)邊緣信息,這些信息可以用于圖像分析、目標(biāo)識(shí)別以及圖像濾波。圖像邊緣檢測(cè)主要是梯度運(yùn)算,在進(jìn)行設(shè)計(jì)時(shí),通常運(yùn)用小區(qū)域模板卷積法 來近似計(jì)算梯度
58、值,且使用不同的模板求圖像數(shù)據(jù)的梯度值就構(gòu)成了不同的邊緣檢測(cè)算子。常用的方法有邊緣Robert算子、Sobel算子、Prewitt算子、Laplacian算子 等,其中Sobel算子具有較好的抑制噪聲和算法實(shí)現(xiàn)簡(jiǎn)單而得以廣泛應(yīng)用,文中將采用Sobel算子進(jìn)行邊緣檢測(cè)。</p><p> 3.2.4 SAD匹配跟蹤模塊的設(shè)計(jì)</p><p> SAD匹配的過程就是首先通過選取模板圖像,然
59、后到圖像區(qū)域中的所有的未知物體進(jìn)行SAD運(yùn)算,掃描整幅圖像尋找SAD值最小的點(diǎn),將SAD最小值的點(diǎn)所在的鄰域作為所尋找的目標(biāo)物體。</p><p> 首先通過16×16窗生成子模塊生成候選目標(biāo)模塊與目標(biāo)模板模塊,然后送到SAD運(yùn)算子模塊進(jìn)行SAD運(yùn)算,最后通過SAD查找子模塊尋求SAD值最小的點(diǎn)(即所要跟蹤的目標(biāo))。</p><p> SAD運(yùn)算子模塊主要負(fù)責(zé)將上述16
60、15;16窗生成子模塊生成的目標(biāo)模板與候選目標(biāo)內(nèi)的對(duì)應(yīng)的像素點(diǎn)按公式進(jìn)行匹配運(yùn)算。文中運(yùn)用了流水線設(shè)計(jì)的方法,把較復(fù)雜的電路分成四級(jí),并在每一級(jí)設(shè)置寄存器組用于存放中間數(shù)據(jù),以減少邏輯運(yùn)算的延時(shí),提高系統(tǒng)運(yùn)行速度。</p><p><b> 3.3總結(jié)</b></p><p> 文中設(shè)計(jì)了運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)所需的圖像處理單元,通過將系統(tǒng)采集到的動(dòng)態(tài)圖像序列經(jīng)過預(yù)處理
61、后送人圖像處理單元進(jìn)行中值濾波、邊緣檢測(cè)以及匹配跟蹤,有效的實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)目標(biāo)的信息跟蹤。文中的創(chuàng)新點(diǎn)在于完成了對(duì)傳統(tǒng)的中值濾波算法進(jìn)行改進(jìn),同時(shí)對(duì)Sobel邊緣檢測(cè)算法進(jìn)行改進(jìn),有效的減少了運(yùn)算時(shí)間,提高匹配跟蹤的準(zhǔn)確度,使系統(tǒng)的圖像處理單元具有更快的處理速度和更高的實(shí)時(shí)勝。</p><p><b> 總結(jié)</b></p><p> 通過本次對(duì)基于機(jī)器視覺的運(yùn)動(dòng)目
62、標(biāo)跟蹤系統(tǒng)設(shè)計(jì),成功的達(dá)到了目的,能夠使系統(tǒng)實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的跟蹤。雖然實(shí)驗(yàn)不是很難,但是本次實(shí)驗(yàn)讓我對(duì)C#.NET,OpenCV和圖像處理有了更深刻的認(rèn)識(shí),提高了動(dòng)手能力,而且增加了實(shí)驗(yàn)經(jīng)驗(yàn),可謂一舉兩得。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] Hieu T.Nguyen, Arnold W.M. Smeulders, Fast O
63、ccluded Object Tracking by a Robust Appearance Filter, 2004 IEEE. </p><p> [2] 岡薩雷斯,《數(shù)字圖像處理》[M], 電子工業(yè)出版社, 2005, 40-112.</p><p> [3]Julia Case Bradley,Anita C.Millspaugh.C#.NET程序設(shè)計(jì).北京:清華大學(xué)出版社,2
64、005:10-35</p><p> [4] 王小科,呂雙. C# 從入門到精通 [M] .北京:清華大學(xué)出版社,2008.3-32</p><p> [5] Gary R. Bradski, Microcomputer Research Lab, Santa Clara, CA, Intel Corporation, Computer Vision Face Tracking For
65、 Use in a Perceptual User Interface.</p><p> [6]趙哲.基于C#的數(shù)字圖像處理算法的分析研究[J].科技信息,2010.7:92-93</p><p> [7]徐其法,朱戰(zhàn)立.基于Visual C#.NET平臺(tái)的數(shù)字圖像處理及其實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(20):121-122. </p><p>
66、 [8] 張春田,蘇育挺,《數(shù)字圖像壓縮編碼》[M], 清華大學(xué)出版社, 2006, 20-23</p><p> [9]梁斌玉.叩響C#之門[M].北京:電子工業(yè)出版社,2009.2-11</p><p> [10] Jeffery Richter, 《Windows核心編程》[M], 2000, 121-287</p><p> [11]何斌,馬天宇.?dāng)?shù)字
67、圖像處理[M].北京:人民郵電出版社,2001.262-304</p><p> [12]張弘. 數(shù)字圖像處理[M]. 北京:機(jī)械工業(yè)出版社,2007.</p><p> [13] opencv-doc-cn-0.9.7,OpenCV說明文檔</p><p> [14] 錢能. C++ 程序設(shè)計(jì)教程[M]. 清華大學(xué)出版社,1999,4,1-134.&l
68、t;/p><p> [15]PORTER T,DUFF T.Compositing Digital Images [J].Computer Graphics (ACM),1984,18(3):253-259. </p><p> [16]RABBANI M,JONES P.Digital Image Compression Techniques [J].SPIE,1991(1 450):
69、116-128.</p><p> [17]SAID A,PEARLMAN W A.A New Fast and Efficient Image Code Based on Set Partitioning in Hierarchical Processing [J].IEEE Trans. on Circuits and Video Technology,1996,6(3):243-250.</p>
70、;<p><b> 致 謝</b></p><p> 本論文的工作是在我的導(dǎo)師xx學(xué)姐的悉心指導(dǎo)下完成的,xx老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。xx老師對(duì)于我的科研工作和論文都提出了許多的寶貴意見,使我獲得很多新知識(shí),使我獲益匪淺,在此表示衷心的感謝。以及感謝xx的指導(dǎo),解決了很多不會(huì)的難題,使我順利的完成這項(xiàng)畢業(yè)設(shè)計(jì)。在此真心的感謝你們。<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于機(jī)器視覺的運(yùn)動(dòng)目標(biāo)實(shí)時(shí)跟蹤算法研究.pdf
- 基于FPGA與機(jī)器視覺的運(yùn)動(dòng)跟蹤系統(tǒng)設(shè)計(jì).pdf
- 基于視覺注意的運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng).pdf
- 基于機(jī)器視覺的運(yùn)動(dòng)目標(biāo)軌跡跟蹤技術(shù)研究.pdf
- 基于視覺的運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)研究.pdf
- 基于機(jī)器視覺的目標(biāo)跟蹤算法研究.pdf
- 基于機(jī)器視覺的跟蹤目標(biāo)距離研究.pdf
- 機(jī)器視覺畢業(yè)論文
- 基于機(jī)器視覺的移動(dòng)機(jī)器人的運(yùn)動(dòng)目標(biāo)跟蹤算法研究.pdf
- 外文翻譯---一個(gè)魯棒的基于機(jī)器視覺運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤系統(tǒng)
- 外文翻譯---一個(gè)魯棒的基于機(jī)器視覺運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤系統(tǒng)
- 基于視覺的運(yùn)動(dòng)目標(biāo)跟蹤方法研究.pdf
- 基于機(jī)器人視覺的運(yùn)動(dòng)目標(biāo)檢測(cè)及跟蹤算法研究.pdf
- 【畢業(yè)論文】基于matlab的動(dòng)態(tài)目標(biāo)視覺的檢測(cè)與跟蹤技術(shù)研究
- 【畢業(yè)論文】基于matlab的動(dòng)態(tài)目標(biāo)視覺的檢測(cè)與跟蹤技術(shù)研究
- 基于視覺的運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤.pdf
- 外文翻譯---一個(gè)魯棒的基于機(jī)器視覺運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤系統(tǒng)
- 外文翻譯---一個(gè)魯棒的基于機(jī)器視覺運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤系統(tǒng).docx
- 基于DSP的運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)設(shè)計(jì).pdf
- 基于機(jī)器視覺的機(jī)器人目標(biāo)識(shí)別跟蹤方法.pdf
評(píng)論
0/150
提交評(píng)論