版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、AbstractIn peoples living level increases in modern society, people in addition to the material conditions improve outside, safety consciousness, more and more is also high on their own personal property safety also pay more and more attention to. But now the burglary, robbery is not rare. In order
2、to guard against theft and buy expensive anti-theft device yet would increase spending, economic burden not to come over. Now if the use of the original image capture at home device (for example, camera, digital camera) and a computer, can the family monitoring. This monitoring software after the ca
3、mera to capture images of picture, in order to reduce the influence of environment, first of image, the gray processs gray-scale processing is actually denoising first step. Then compared with background threshold, judge whether there is a motion graphics, extract movement graphics. After extraction
4、, then there is motion graphics, the picture denoising 55 range denoising, get low interference information, and thus for the image scene monitoring. Meanwhile has good dynamic response characteristics, can timely find suspicious circumstances, and have humanoid detection function, can rapidly match
5、ing humanoid features, prevent supervisory system of the family animals and the non-human miscalculation. Users simply use simple communication tools (such as mobile phone) can achieve anytime master home safety monitoring. After long time and more under the changing environment test, our system can
6、 normal use, can extract objects in motion, and normal can judge whether human.Key word: family monitoring; gray change; Screen capture; Extraction motion graphics; Remove speckles;1.1 研究家庭攝像頭監(jiān)控系統(tǒng)的意義現在國家大力普及電腦,而 也成為人們生活必不可少的一局部,生活水平的提高,讓人們更加注重自己和家人的人身財產平安,家庭攝像頭監(jiān)控系統(tǒng)就倍受人們青睞?,F在只要一臺電腦,一個攝像頭和一臺 ,就可以使用本系統(tǒng)
7、的全部功能,大大方便了人們的生活。當您在辦公室工作,當您在郊外旅游的時候,突然收到一條短信,提醒您家里有“異常情況的時候,你可以馬上通過 或者筆記本電腦等設備來開啟你的郵箱,及時的查看家里發(fā)生的情況。如果,您發(fā)現了有竊賊的入侵,您可以馬上采取措施來阻止或者減少家庭財產的損失,并且留下的證據將對警方的調查起到非常有力的幫助。可以說,家庭攝像頭監(jiān)控系統(tǒng)是在突破了空間條件限制,而進行的無需人工看守的自動監(jiān)控系統(tǒng)?,F在,就算你家里沒有人,你身在遠門也不用擔憂家里的情況,家里的一切,盡在掌握中。畫面捕捉與處理在家庭攝像頭監(jiān)控系統(tǒng)的中的意義本系統(tǒng)針對現在市場上的情況,研究出人形判斷功能,能對出現在背景中的
8、是否人類。只有當“人形特征出現在畫面上的時候,才判定為“異常情況。而在獲取“人形圖像信息上,我們也做了一些工作。因為要判斷出現的運動物體是否人形,首先必不可少的一步,就是去除背景,提取運動圖形,然后去除雜點,提供一個低干擾,清楚的運動圖形,為人形判斷功能鋪墊根本前提。2.1 市場需求現在市面上已經有不少家庭監(jiān)控軟件存在,例如:“天眼家庭監(jiān)控軟件、“安心e家在線家庭監(jiān)控軟件、“超級門衛(wèi)等,而且家庭監(jiān)控系統(tǒng)在市場上非常受歡送。但是,這些家庭監(jiān)控軟件都有一個共同的缺點,那就是在監(jiān)控機制方面都是簡單的判斷畫面變動,而不會自動識別畫面出現的物體是人類還是非人類。也就是說,把人形檢測功能融入到家庭監(jiān)控的這
9、項技術,或者這一類的軟件,在市面上仍是一個空白。圖像識別技術一直以來是很多計算機圖像編程專家熱點研究的問題,當然也包括人形檢測。因為此類技術的新穎與其難度相對較大,致使使用這類技術來開發(fā)適合家庭使用的群眾化軟件也相對較少。通過以上的需求分析,我們得出這樣一個總結,在經濟高速開展的今天,人們更需要一種平安,方便,實用的家庭監(jiān)監(jiān)控軟件來保障家庭財產的平安。而帶人形檢測的家庭攝像頭監(jiān)控系統(tǒng)在國內市場的空缺,正是家庭監(jiān)控軟件的一個巨大瓶頸。但是,在瓶頸出現的同時,也說明了家庭監(jiān)控軟件還隱藏著大量的開展前景與商業(yè)機遇。為此,我們通過不斷的探究與學習,開發(fā)出了這一款“帶人形檢測的家庭攝像頭監(jiān)控系統(tǒng)。普通的
10、家庭,購置家庭攝像頭監(jiān)控系統(tǒng),一個是為平安,一個是方便,一個是可靠。所以作為一個家庭監(jiān)控系統(tǒng),要能滿足用戶對系統(tǒng)的目標要求,滿足平安系統(tǒng)的大局部要求。方便性,即用戶能很方便,快捷地使用監(jiān)控系統(tǒng),不用做很繁瑣的操作和準備。靈敏度,即硬件擴展,硬件的選擇,變更不會受到很大限制??煽啃?,即系統(tǒng)的使用是否能到達目標要求,各項功能是否能正常使用,如日常監(jiān)控,報警機制等,是否可靠等等。2.3 用戶需求我們的系統(tǒng)操作簡單,硬件要求低,是因為考慮到本系統(tǒng)主要面向的對象是家庭用戶,提供應家庭使用的,而一般的普通家庭對電子行業(yè)并不了解,所以我們盡量使系統(tǒng)界面簡潔,操作簡便,硬件要求簡單。用戶要使用我們的系統(tǒng),只需
11、擁有一臺電腦, 一臺,一個攝像頭,和具備最根本的電腦操作能力就滿足使用本系統(tǒng)的條件。用戶只要把攝像頭連接到電腦上,并翻開我們的軟件,按照自己的需要進行簡單的設置,就可以使用我們的監(jiān)控系統(tǒng)了。通過簡便的操作,簡單的硬件要求,使所有的家庭用戶都能很方便地使用我們的系統(tǒng),而不用大費周章,花費心思地去使用我們的系統(tǒng)。 2.4 功能需求一個家庭監(jiān)控系統(tǒng),必須具有的功能是自動報警,因為是家庭監(jiān)控,不會有人長時間守在電腦前監(jiān)視的。所以,我們的系統(tǒng)有智能判斷功能,即當畫面發(fā)生變化,就會自動報警。而在畫面判斷方面,我們考慮到有些家庭有養(yǎng)寵物的情況,針對這類情況,我們設計了一個功能,就是當畫面上出現人形圖像時,我
12、們才判斷有外人進入,從而不會因為寵物的走動而產生誤判。同時,一個監(jiān)控系統(tǒng)還必須有報警功能。當用戶在外,家里沒人時,我們系統(tǒng)可以進行遠程報警,即發(fā)短信通知用戶,同時還會把當時截取下來的圖片發(fā)送到用戶郵箱,以便用戶查看。這樣,無論用戶在任何地方,都可以第一時間發(fā)覺家里的異常情況,讓用戶可以安心的離開家門去忙自己的事情。一個監(jiān)控系統(tǒng),還必須有證據捕獲機制。我們的系統(tǒng)在畫面發(fā)生變更時,或有人形圖像出現是,就會截圖,除了在本地保存以外,還會把截下來的圖片發(fā)送到用戶郵箱,進行證據的保存。由于本系統(tǒng)針對的用戶是家庭用戶,主要用于家里沒人,用戶外出的情況,所以監(jiān)控系統(tǒng)就有必要擁有遠程控制功能。本系統(tǒng)除了可以發(fā)
13、送短信通知用戶家里的情況以外,還可以接收用戶發(fā)回來的短信指令,從而實現遠程控制系統(tǒng)的開關。當用戶遠門在外,或不方便回家,而又有親人或朋友回家了,這時監(jiān)控系統(tǒng)檢測到有人形圖像出現,就會啟動報警機制,發(fā)送信息通知用戶。為了不用受到這不必要的打攪,我們設置了一個遠程開關系統(tǒng)的功能,用戶只要通過 發(fā)送簡單的指令,就可以對系統(tǒng)進行遠程開關控制,而不用受到不必要的打攪。3.系統(tǒng)整體功能概述 運動畫面的捕獲與處理模塊一個監(jiān)控系統(tǒng)首先是要把攝像頭拍攝到的畫面?zhèn)魅氲较到y(tǒng)中,本系統(tǒng)是調用API函數獲取攝像頭拍攝到的畫面。系統(tǒng)在運行初期先啟動攝像頭,然后拍攝一個當前無人環(huán)境時的圖片,然后進行灰度化處理,減少環(huán)境和硬
14、件對畫面的影響,灰度化以后的圖片作為基準圖片,接著通過循環(huán)截取攝像頭捕獲的圖片。每截取一張新的圖片,就進行一次灰度化處理,然后把灰度化后的圖片與基準圖片相比擬,把兩張圖片不同的點記錄出來。經過屢次循環(huán)比擬,把收集起來的點集結合起來,畫到一張空的圖片中去,就形成了運動物體的去背景效果,也就實現了把畫面中某個運動的物體提取出來的操作。因為現在市面上攝象頭的象素與質量不統(tǒng)一,難免在捕獲圖像的時候產生雜點,而環(huán)境的光線因素會對畫面的變化產生更嚴重的影響。這里的雜點,指的是捕獲的運動點集中,除運動物體外的沒有信息價值的點,如由于光線變化因素,某個像素點產生了變化,于是被記錄下來,當成了運動圖形的一局部。
15、所以,接下來的工作就是需要經過特定的算法,把雜點去掉,稱為去噪。把在運動點集中的像素點保存,而分散的比擬開的點當作雜點去掉,而保證提取出來的運動圖形剩下的點都是物體在運動過程中所產生的。運動畫面的捕獲與處理模塊作為整個系統(tǒng)信息輸入的接口之一,包括了畫面捕獲,畫面灰度化處理,提取運動點集,畫面去雜點幾個局部。將計算機前運動的畫面捕獲下來,實現了現實生活畫面轉換為計算機信息的過程。經過處理,將有價值的信息提取出來并輸送給下一個模塊。 人形檢測模塊經過前一步的操作,我們可以得到運動物體的圖形。接下來便是對運動圖形的各種信息進行獲取,如長度,高度,比例等等。當掌握了我們所需要的信息之后,便可以進行進行
16、人形特征匹配。人形檢測模塊作為整個系統(tǒng)的核心處理局部,依據意大利著名畫家達芬奇提出的人體黃金比例約束規(guī)律進行分析。人形檢測模塊包含了畫面收集,按比例計算,人形特征匹配三個局部。將從運動畫面的捕獲與處理模塊得到的信息進行進一步處理,分析出是否含有疑似人類外形的圖片,并將信息傳遞給下一個模塊,做出相應的反應。報警與控制模塊 當接收到上一個模塊處理完的信息時候,判斷是否調用報警機制。當報警機制被激活時,通過調用系統(tǒng)API函數,啟動發(fā)送郵件通知用戶,并啟動鼠標鍵盤模擬操作通訊工具。在發(fā)送郵件的同時,系統(tǒng)將自動把變化的畫面生成圖片,然后保存在計算機里。并且,這些圖片將會以畫面變動的具體時間來作為圖片名。
17、同時,軟件將通過郵件里面的附件功能,把這些圖片打包成為附件,然后向用戶的郵箱里發(fā)送。萬一發(fā)生入竊事件,保存在郵箱里的圖片將會給警方破案帶來極大的幫助。而且本系統(tǒng)有遠程控制功能,用戶只要發(fā)送簡單指令便可遠程控制本系統(tǒng)的開關。 系統(tǒng)UI設計UI即User Interface用戶界面的簡稱。UI設計那么是指對軟件的人機交互、操作邏輯、界面美觀的整體設計。好的UI設計不僅是讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由、充分表達軟件的定位和特點。因為這個軟件是一個家庭監(jiān)控系統(tǒng),也就是說,這個軟件面向的是普通家庭使用。那么,我們首先要考慮到的第一個問題是,軟件使用的難易程度。通過我們對市面
18、上一些攝象頭軟件的調查發(fā)現,大多數產品的設置過于復雜。一些太專業(yè)性的設置對于一般人來說,都很難理解和弄清楚這個功能是干什么用的。所以在使用操作方面,我們盡可能的從簡單入手,去除了一大堆煩瑣的操作。3.5 系統(tǒng)流程框圖圖 3-1 系統(tǒng)流程框圖4.相關編程語言解析4.1相關編程語言介紹C#是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的
19、過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網絡框架的主角。C#成為ECMA與ISO標準標準。C#看似基于C+寫成,但又融入其它語言如Pascal、Java、VB等。微軟c#語言定義主要是從C和C+繼承而來的,而且語言中的許多元素也反映了這一點.C#在設計者從C+繼承的可選選項方面比Java要廣泛一些(比方說struts),它還增加了自己新的特點(比方說源代碼版本定義).(1)簡潔的語法在缺省的情況下,C#的代碼在.NET框架提供的“可操縱環(huán)境下運行,不允許直接地內存操作。它所帶來的最大的
20、特色是沒有了指針。與此相關的是,那些在C+中被瘋狂使用的操作符例如:“:、“-和“.,已經不再出現。C#只支持一個“.,對于我們來說,現在需要理解的一切僅僅是名字的嵌套而已。語法中的冗余是C+中的常見的問題,比方const和#define、各種各樣的字符類型等等。C#對此進行了簡化,只保存了常見的形式,而別的冗余形式從它的語法結構中被去除了出去。(2)精心地面向對象設計C#具有面向對象的語言所應有的一切特性:封裝、繼承與多態(tài)性,這并不出奇。然而,通過精心地面向對象設計,從高級商業(yè)對象到系統(tǒng)級應用,C#建造廣泛組件的絕對選擇。在C#的類型系統(tǒng)中,每種類型都可以看作一個對象。C#提供了一個叫做裝箱
21、(boxing)與拆箱(unboxing)的機制來完成這種操作,而不給使用者帶來麻煩,這在以后的章節(jié)中將進行更為詳細的介紹。C#只允許單繼承,即一個類不會有多個基類,從而防止了類型定義的混亂。在后面的學習中你很快會發(fā)現,C#中沒有了全局函數,沒有了全局變量,也沒有了全局常數。一切的一切,都必須封裝在一個類之中。你的代碼將具有更好的可讀性,并且減少了發(fā)生命名沖突的可能。整個C#的類模型是建立在.NET虛擬對象系統(tǒng)(Visual Object System,VOS)的根底之上,其對象模型是.NET根底架構的一局部,而不再是其本身的組成局部。在下面將會談到,這樣做的另一個好處是兼容性。(3)版本處理
22、技術C#提供內置的版本支持來減少開發(fā)費用,使用C#將會使開發(fā)人員更加輕易地開發(fā)和維護各種商業(yè)用戶。升級軟件系統(tǒng)中的組件模塊是一件容易產生錯誤的工作。在代碼修改正程中可能對現存的軟件產生影響,很有可能導致程序的崩潰。為了幫助開發(fā)人員處理這些問題,C#在語言中內置了版本控制功能。例如:函數重載必須被顯式聲明,而不會象在C+或java中經常發(fā)生的那樣不經意地被進行,這可以防止代碼級錯誤和保存版本化的特性。另一個相關的特性是接口和接口繼承的支持。這些特性可以保證復雜的軟件可以被方便地開發(fā)和升級。5. 運動畫面的捕獲與處理模塊解析5.1 畫面捕獲我們的系統(tǒng)是一個視頻監(jiān)控系統(tǒng),要設計一個視頻監(jiān)控系統(tǒng),首先
23、,是要獲取視頻拍攝的畫面,即畫面捕獲。在畫面捕獲方面,我們主要使用了VFWVideo for Windows技術。VFW 是Microsoft公司為開發(fā)Windows平臺下的視頻應用程序提供的軟件工具包,提供了一系列應用程序編程接口API,用戶可以通過這些接口很方便地實現視頻捕獲、視頻編輯及視頻播放等通用功能,還可利用回調函數開發(fā)比擬復雜的視頻應用程序。該技術的特點是播放視頻時不需要專用的硬件設備,而且應用靈活,可以滿足視頻應用程序開發(fā)的需要。Windows操作系統(tǒng)自身就攜帶了VFW技術,系統(tǒng)安裝時,會自動安裝VFW的相關組件。但是,由于我們的系統(tǒng)只是一個家庭監(jiān)控系統(tǒng),一般家庭都不具備錄音設備
24、,所以監(jiān)控只能錄取圖像,不設置現場聲音的錄取。本系統(tǒng)的一個核心功能就是對監(jiān)控畫面進行人形判斷,判斷畫面上的活動物體是否符合人形特征,從而進行報警。而且一個監(jiān)控系統(tǒng)的最根本功能,首先是能通過攝像頭把攝像頭拍攝到的畫面?zhèn)鬟f到本系統(tǒng)的畫面上,從而顯示監(jiān)控畫面。所以,我們的系統(tǒng)的第一個要實現的功能就是在本系統(tǒng)上顯示攝像頭拍攝到的畫面畫面捕捉。首先,我們要獲得顯示畫面的控件的句柄:handle = this.panel1.Handle.ToInt32();接著,就要把攝像頭的畫面通過句柄 hw 把畫面?zhèn)魉偷絧anel1中。畫面捕捉過程由 capCreateCaptureWindow 方法開始. 當調用這
25、個方法時, 就會把panel1創(chuàng)立成為一個新的視頻窗口,并返回一個句柄。 句柄是一個32位的數,用來作為對象的引用。hHwnd = capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 400, 300, handle, 0);當圖像捕捉窗口建立以后,就可以把圖像設備的驅動和它連接了。以下的 OpenCapture 將開啟攝象頭并把畫面?zhèn)鹘o控件。傳入的參數是控件的句柄。public void OpenCapture(Int32 handle) int intWidth = 400; int intHeight = 300; int i
26、ntDevice = 0; string refDevice = intDevice.ToString(); /創(chuàng)立視頻窗口并得到句柄 hHwnd = capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 400, 300, handle, 0); if (SendMessage(hHwnd, 0 x40a, intDevice, 0) 0) SendMessage(this.hHwnd, 0 x435, -1, 0); SendMessage(this.hHwnd, 0 x434, 0 x42, 0); SendMessage(th
27、is.hHwnd, 0 x432, -1, 0); SetWindowPos(this.hHwnd, 1, 0, 0, intWidth, intHeight, 6); else DestroyWindow(this.hHwnd); 通過以上方法,就可以實現把攝像頭的畫面?zhèn)魉偷街贫ǖ拇翱谏?,實現了本系統(tǒng)的第一步。效果如下列圖所示:圖 5-1 畫面捕捉當畫面出現在控件里面后,我們調用Graphics.CopyFromScreen Method (Int32, Int32, Int32, Int32, Size)函數進行屏幕截圖。截取下來的第一張圖片,作為一個基準圖片,以該圖片為平安狀態(tài)的畫面,假
28、設接下來的圖片與基準圖片不相同了,就判斷畫面出現了變化。5.2 提取運動圖形 灰度化處理由于本系統(tǒng)對硬件的要求不高,普通的攝像頭就可以進行攝像監(jiān)控,不需要質量很高的攝像頭,但由于攝像頭的質量不高也帶來了一些問題,例如畫質不高,即使畫面沒有發(fā)生變動,由于攝像頭的質量問題或光線影響,每一幀圖片的像素點也有可能不同,導致系統(tǒng)判斷錯誤。所以我們在判斷是否畫面發(fā)生變動前,我們需要先進行灰度化處理,以減少硬件和環(huán)境對判斷的影響將彩色圖像轉化成為灰度圖像的過程稱為圖像的灰度化處理。彩色圖像中的每個像素的顏色有RGB三個分量決定,而每個分量有255中值可取,這樣一個像素點可以有1600多萬255255255的
29、顏色的變化范圍。而灰度圖像是RGB三個分量相同的一種特殊的彩色圖像,其一個像素點的變化范圍為255種,所以在數字圖像處理種一般先將各種格式的圖像轉變成灰度圖像以使后續(xù)的圖像的計算量變得少一些?;叶葓D像的描述與彩色圖像一樣仍然反映了整幅圖像的整體和局部的色度和亮度等級的分布和特征。圖像的灰度化處理可用兩種方法來實現。第一種方法使求出每個像素點的RGB三個分量的平均值,然后將這個平均值賦予給這個像素的三個分量,稱為平均值算法。第二種方法是根據YUV的顏色空間中,Y的分量的物理意義是點的亮度,由該值反映亮度等級,根據RGB和YUV顏色空間的變化關系可建立亮度Y與RGB三個顏色分量的對應:Y=0.3R
30、+0.11B,以這個亮度值表達圖像的灰度值。經過灰度化處理后,兩張的圖片效果如下所示:圖 5-2 灰度前圖 5-3 灰度后 提取運動圖形由于我們的系統(tǒng)除了普通的畫面發(fā)生變動即報警的功能外,還有一個核心功能,就是人形判斷,即對畫面上發(fā)生變化的局部進行判斷是否人形。要判斷是否人形,首先當然就是提取運動圖形,我們需要從背景不變的圖像序列中較好的提取出運動對象。在視頻監(jiān)控中,假設監(jiān)控場景和攝像頭保持相對不變,那么背景圖像的大小和位置在不同幀中是不變的,因而可以直接利用幀間同一位置的像素點的亮度或顏色的變化來提取運動圖形。但如果是兩幀之間進行比擬,就很容易出現一個問題,就是如果前一幀中出現一個人,而后一
31、幀中該人物只動了一個手臂,那么提取出來的運動圖像就只是一個手臂,就不能提取出來整個人物的圖形了。所以我們采用的方法是,開啟攝像時,截取第一張圖片作為基準圖片,隨后啟動線程,不停地對監(jiān)控窗口進行截圖,每截取一張圖,先進行灰度處理,然后就與基準圖片每一個像素點進行比擬,當像素點不同時,該像素點就是運動圖形的一個像素點。假設我們現在有兩張圖,上面有都有4個像素點,白色圓圈代表原來的像素點,黑色圓圈代表發(fā)生了變化的像素點,提取運動圖形后,如下列圖所示圖 5-4 運動圖像的提取那么,我們第一步要做的是把兩張圖片的每一個象素提取出來,再做比擬,如果差異大于閾值就把該點提取出來。一開始,我們用GetPixe
32、l 函數對圖片進行提取象素。然后把取得象素的兩張圖片進行象素遍歷。我們遍歷的圖片大小是400300,那么就是說,一共需要進行120000次循環(huán)遍歷。經過實驗我們發(fā)現用GetPixel 函數對圖片進行取象素速度非常的慢,而且也對系統(tǒng)造成了大量占用。很明顯,我們需要找到另外一種高速高效率的方法來遍歷這兩張圖片。最后,我們找到了一種可以快速遍歷圖片象素的方法。因為.NET是托管代碼系統(tǒng),它最常使用的是托管數據,所以我們并不需要經常訪問存貯在內存中的字節(jié)。但是,圖像的處理需要訪問內存中的字節(jié)。GetPixel 函數對圖片進行取象素訪問托管數據的速度太慢了。所以我們必須深入探究操作圖像數據的方法。Bit
33、map類提供了LockBits方法以及對應的UnlockBits方法。我們可以鎖定內存中的局部圖像像素數據數組,然后直接訪問并可修改bitmap中的二進制位。LockBits返回的BitmapData類型的數據描述了鎖定的數組中數據的布局和位置信息。BitmapData類有以下重要屬性:Scan0 鎖定數據數組在內存中的地址。 Stride 一個單行像素數據的寬度,以byte為單位。這一寬度是圖像像素寬度的整數倍或非整數倍,然后很有可能地再填充另外的一些字節(jié)。細節(jié)等下詳述。 PixelFormat 數據實際的像素格式,這對于找到正確的字節(jié)非常重要。 Width 鎖定影像的寬度 Height 鎖
34、定影像的高度 內存中數組的Scan0和Stride的關系如下列圖:圖 5-5 Scan0與Stride關系圖屬性Stride,如圖中所示的那樣,持有行的寬度,以字節(jié)為單位。考慮到效率,行的寬度并不一定是確切的像素大小的倍數整數倍 Or 非整數倍。系統(tǒng)需要保證數據被裝入行,以4字節(jié)的邊界開始,并填補一些字節(jié)以形成4個字節(jié)倍數的布局。比方一幅24位的影像寬度為17像素,它的Stride的寬為52。每行數據將占317=51字節(jié),再加上填補的一個字節(jié),每行擴展到52字節(jié),即134字節(jié);一幅4位的索引影像,寬度為17像素,它的Stride的值為12,9個字節(jié),更為準確的說是8.5個字節(jié)為數據區(qū),然后還要
35、再填補另外的3個字節(jié)以形成4字節(jié)的邊界。一行中含有數據的局部的排列依據于PixelFormat。一幅24位的影像持有RGB數據,每3個字節(jié)1個像素;24位的影像包含RGBA數據,每4個字節(jié)1個像素。每1字節(jié)含有多于1個像素的像素格式pixel format,比方4位索引影像、1位索引影像,這類影像需要認真處理,不要將同一字節(jié)中相鄰的像素混淆了。X,Y坐標,像素第一個元素的位置為Scan0+(YStride)+(X3)。這是blue字節(jié)的位置,接下來的2個字節(jié)分別含有green、red數據。 這樣,b0代表藍色,b1代表綠色,b2代表紅色。 unsafe for (int i = 0; i da
36、ta.Height; i = i + 1) for (int j = 0; j data.Width; j = j + 1) b = (byte*)(int)data.Scan0 + (i * data.Stride) + (j * 3); b0=0; b1=0; b2=0; 因為這樣的操作涉及到了C#里面的非平安代碼操作。所以要用unsafe 包起來。通過這種把圖片鎖進內存的方法,我們將可以快速的進行圖片的遍歷和操作。但是另一個問題又出現了。在實際操作中,我們發(fā)現。在比擬前后兩張圖片時,因為保存與讀取的速度不相等的原因,軟件常常出錯,提示訪問了無法訪問的內存空間。所以,我們針對這個問題,想出
37、了另外一個方法?;谝环N隊列的思想,如下列圖。圖 5-6 隊列圖片保存進t緩沖區(qū),然后t把圖片傳給t-1。t-1與t-2進行比擬,然后再做出隊操作。at - 2 = at - 1;at - 1 = at;t = t - 1;解決了以上的問題,我們就可以成功的把圖片中運動的物體提取出來,并畫到一張新的圖片里面,為下一步操作做準備。效果如下所示:圖5-7 基準圖片圖5-8 變化圖片圖 5-9 運動物體5.3 畫面去雜點完成了運動物體提取后,我們要做的任務是去雜點。因為市面上攝象頭的質量參差不齊,而且由于環(huán)境問題,拍攝出來的畫面肯定存在雜點。所謂的雜點,就是與我們想得到圖像信息不相干的點,我們一般叫
38、去噪。但是,噪聲在理論上可以定義為“不可預測,只能用概率統(tǒng)計方法來認識的隨機誤差。因此將圖像噪聲看成是多維隨機過程是適宜的,因而描述噪聲的方法完全可以借用隨機過程的描述,即用其概率分布函數和概率密度分布函數。但在很多情況下,這樣的描述方法是很復雜的,甚至是不可能的。而實際應用往往也不必要。通常是用其數字特征,即均值方差,相關函數等。因為這些數字特征都可以從某些方面反映出噪聲的特征?,F在去雜的方式有多種,例如ICA變換,小波,灰度預測等,還有一些經典的均值濾波,中值濾波,維納濾波等等。均值濾波算法,也稱線性濾波,主要思想為鄰域平均法,即用幾個像素灰度的平均值來代替每個像素的灰度。有效抑制加性噪聲
39、,但容易引起圖像模糊,假設圖像模糊,就會影響對運動圖形是否人形的判斷。中值濾波,基于排序統(tǒng)計理論的一種能有效抑制噪聲的非線性平滑濾波信號處理技術。中值濾波的特點即是首先確定一個以某個像素為中心點的鄰域,一般為方形鄰域,也可以為圓形、十字形等等,然后將鄰域中各像素的灰度值排序,取其中間值作為中心像素灰度的新值,這里領域被稱為窗口,當窗口移動時,利用中值濾波可以對圖像進行平滑處理。其算法簡單,時間復雜度低,但其對點、線和尖頂多的圖像不宜采用中值濾波。很容易自適應化。維納濾波,使原始圖像和其恢復圖像之間的均方誤差最小的復原方法,是一種自適應濾波器,根據局部方差來調整濾波器效果,對于去除高斯噪聲效果明
40、顯。而我們通過思考,觀察和測試,發(fā)現,提取出來的運動圖像,根本上像素點都是連在一起的,而噪電那么隨便分布在圖片上,或一兩點,或三五點,都是不連續(xù)的。所以對于去噪,我們采用了55范圍去噪的方法。對于采用55去噪方法的好處,我們先來看下均值濾波的效果,如下列圖所示: 圖 5-10 原始圖像 圖5-11 加噪后 圖5-12 均值濾波后由上圖可以看出,均值濾波的去噪是對整張圖片中的像素點都進行更改,這個算法放到我們的系統(tǒng)中就出現了一個問題,就是提取出來的運動物體也被進行了更改,更重要的一點就是,所謂的雜點,其實并沒有被去掉,而是RGB等屬性被更改了而已,這就對我們下一個模塊的人形判斷產生巨大影響。中值
41、濾波,維納濾波等無一例外都是更改雜點的灰度值等屬性到達去噪效果,無法到達我們系統(tǒng)對去噪的要求。所以,我們采用了55范圍去噪的方法。我們55去雜點方法,就是在55范圍內遍歷像素,假設沒有內容的像素點超過一個閾值,那么判斷該范圍內的點都是不連續(xù)的,都是雜點,采用函數把這些雜點都去掉,就不會對下一模塊的判斷產生影響。我們通過圖像連通的特點,首先建立一個55的抽象模版。圖 5-13 去雜點如果在55=25個點中,存在圖像信息的點數少于一個閾值,那么我們認為這些點不連通,當作雜點處理,通過算法把這些雜點都全部去除。圖 5-14 去雜圖 5-15 去雜按照這個模版,把一張圖片分成假設干個模版。如圖5-14和圖5-15 當一個模版掃描完后,直接跳入下一個模版。也就是說,我們掃描時,當計算完一個模版,它的寬度值將加5,跳入下一個模版,高度值也是如此。當然,我們還需要考慮,高與寬能不能被5整除,也就是說,可能這張圖片不能被假設干個完整的模版填充,有些局部的模版不完整。根據這個原因,我們做出了規(guī)定。在掃描圖片的時候,我們盡量把圖片當成5X5格式來掃描,當溢出時,不做任何操作。所以,掃描代碼必須由trycatch包裹起來,防止溢出造成程序錯誤。模版間跳轉代碼如下: for (int i = 0; i data2.Height; i = i + 5) for (i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024個人民間借款合同范本格式
- 2024年度家具搬運與安裝合同
- 職業(yè)危害課件教學課件
- 2024年建筑工程抹灰班組承包合同
- 2024年度財務咨詢與審計服務協(xié)議
- 煙花創(chuàng)意課件教學課件
- 2024健身器材代銷合同
- 2024年度汽車銷售代理協(xié)議
- 2024年度環(huán)保項目工程咨詢服務合同
- 2024品牌授權與加盟合作協(xié)議
- 武術隊管理制度
- 秋冬季常見傳染病預防知識培訓
- 群眾文化活動服務投標方案(技術標)
- 通信行業(yè)銷售人員銷售技巧培訓
- 2024建筑門窗安裝技術規(guī)程
- 降低會陰側切率的PDCA
- 第二篇創(chuàng)業(yè)機會的識別課件
- 2023年江蘇省無錫錫山區(qū)市場監(jiān)督管理局招聘11人筆試參考題庫(共500題)答案詳解版
- 《危機概述》課件
- 浙江省寧波市鎮(zhèn)海區(qū)蛟川書院2023-2024學年九年級上學期期中科學試卷
- 54設計和開發(fā)驗證記錄表
評論
0/150
提交評論