畢業(yè)設(shè)計--- 人臉識別系統(tǒng)的研究與實現(xiàn)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘要</b></p><p>  人臉識別因其在安全驗證系統(tǒng)、信用卡驗證、醫(yī)學(xué)、檔案管理、視頻會議、人機交互、系統(tǒng)公安(罪犯識別等)等方面的巨大應(yīng)用前景而越來越成為當(dāng)前模式識別和人工智能領(lǐng)域的一個研究熱點。</p><p>  本文提出了基于24位彩色圖像對人臉進行識別的方法,介紹的主要內(nèi)容是圖像處理,它在整個軟件中占有極其重要的地位,圖

2、像處理的好壞直接影響著定位和識別的準(zhǔn)確率。本軟件主要用到的圖像處理技術(shù)是:光線補償、高斯平滑和二值化。在識別前,先對圖像進行補光處理,再通過膚色獲得可能的臉部區(qū)域,最后根據(jù)人臉固有眼睛的對稱性來確定是否就是人臉,同時采用高斯平滑來消除圖像的噪聲,再進行二值化,二值化主要采用局域取閾值方法,接下來就進行定位、提取特征值和識別等操作。經(jīng)過測試,圖像預(yù)處理模塊對圖像的處理達(dá)到了較好的效果,提高了定位和識別的正確率。</p>&l

3、t;p>  【關(guān)鍵字】:人臉識別;光線補償;高斯平滑;對比度增強</p><p>  【key word】: Face recognition; light compensating; gauss smooth;contrast enhancing </p><p><b>  第一節(jié) 課題背景</b></p><p><b>

4、;  一 課題的來源</b></p><p>  隨著安全入口控制和金融貿(mào)易方面應(yīng)用需要的快速增長,生物統(tǒng)計識別技術(shù)得到了新的重視。目前,微電子和視覺系統(tǒng)方面取得的新進展,使該領(lǐng)域中高性能自動識別技術(shù)的實現(xiàn)代價降低到了可以接受的程度。而人臉識別是所有的生物識別方法中應(yīng)用最廣泛的技術(shù)之一,人臉識別技術(shù)是一項近年來興起的,但不大為人所知的新技術(shù)。人們更多的是在電影中看到這種技術(shù)的神奇應(yīng)用:警察將偷拍到的

5、嫌疑犯的臉部照片,輸入到電腦中,與警方數(shù)據(jù)庫中的資料進行比對,并找出該嫌犯的詳細(xì)資料和犯罪記錄。這并非虛構(gòu)的情節(jié)。在國外,人臉識別技術(shù)早已被大量使用在國家重要部門以及軍警等安防部門。在國內(nèi),對于人臉識別技術(shù)的研究始于上世紀(jì)90年代,目前主要應(yīng)用在公安、金 融、網(wǎng)絡(luò)安全、物業(yè)管理以及考勤等領(lǐng)域。</p><p>  二 人臉識別技術(shù)的研究意義</p><p>  1、富有挑戰(zhàn)性的課題<

6、;/p><p>  2、面部關(guān)鍵特征定位及人臉2D形狀檢測技術(shù)</p><p>  3、面部感知系統(tǒng)的重要內(nèi)容</p><p>  基于視覺通道信息的面部感知系統(tǒng),包括人臉檢測和跟蹤、面部特征定位、面部識別、人臉歸類(年齡、種族、性別等的判別)、表情識別、唇讀等分系統(tǒng),如圖1-1所式,可以看出,繼人臉檢測和跟追之后,面部特征定位通常是面部感知的一個必備環(huán)節(jié),是后續(xù)工作的

7、基礎(chǔ),具有重要的意義。盡管人臉識別不能說是其他面部感知模塊的必備功能,但是, 可以肯定的是,利用已知的身份信息,結(jié)合特定人的先驗知識,可以提高表情分析、唇讀和語音識別、手勢識別乃至手寫體識別的可靠性。而計算機對使用者身份確認(rèn)的最直接的應(yīng)用就是基于特定使用者的環(huán)境設(shè)置:如使用者的個性化工作環(huán)境,信息的共享和隱私保護等等。</p><p>  圖1-1面部感知系統(tǒng)結(jié)構(gòu)圖</p><p>  第

8、二章 系統(tǒng)的需求分析與方案選擇</p><p>  人臉識別系統(tǒng)現(xiàn)在應(yīng)用于許多領(lǐng)域中,但是人臉識別技術(shù)也是一項近年來興起的,且不大為人所知的新技術(shù)。在我國以及其他國家都有大量的學(xué)者正在研究之中,不斷的更新人臉識別技術(shù),以便系統(tǒng)的識別準(zhǔn)確率達(dá)到新的高度。</p><p>  第一節(jié) 可行性分析</p><p>  在開發(fā)該人臉識別軟件之前,我們查詢了前人所寫過的諸多

9、論文以及源程序,在開發(fā)之時,結(jié)合了資料中的算法并揉進了自己的一些思想,使程序可以對人臉圖片進行簡易識別。</p><p><b>  一 技術(shù)可行性</b></p><p>  圖像的處理方法很多,我們可以根據(jù)需要,有選擇地使用各種方法。</p><p>  在確定臉部區(qū)域上,通常使用的方法有膚色提取。膚色提取,則對臉部區(qū)域的獲取則比較準(zhǔn)確,

10、成功率達(dá)到95%以上,并且速度快,減少很多工作。</p><p>  圖像的亮度變化,由于圖像的亮度在不同環(huán)境的當(dāng)中,必然受到不同光線的影響,圖像就變得太暗或太亮,我們就要對它的亮度進行調(diào)整,主要采取的措施是對圖像進行光線補償。</p><p>  高斯平滑:在圖像的采集過程中,由于各種因素的影響,圖像中往往會出現(xiàn)一些不規(guī)則的隨機噪聲,如數(shù)據(jù)在傳輸、存儲時發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會影

11、響圖像的質(zhì)量,因此需要將圖片進行平滑操作以此來消除噪聲。</p><p>  灰度變換:進行灰度處理,我們要保證圖像信息盡可能少的丟失。同樣在進行灰度變換前,我們也要對圖像的信息進行統(tǒng)計,找出一個比較合理的灰度值,才能進行灰度變換。</p><p>  灰度均衡:灰度變換后,就要進行灰度均衡,可以根據(jù)灰度分布來進行灰度均衡。</p><p>  對比度增強:將所要處

12、理的區(qū)域和周圍圖像區(qū)域進一步拉開他們的對比度,使它們更加明顯,主要通過像素的聚集來實現(xiàn)。</p><p><b>  二 操作可行性</b></p><p>  該人臉識別軟件需要如下的運行環(huán)境:CPU:500M及以上;內(nèi)存:64 M及以上。安裝有Windows 98、Windows Me、Windows 2000、Windows NT等操作系統(tǒng)中的其中一種。另還裝

13、有攝像頭可進行隨機拍照和識別。因此,從操作可行性來看,只要系統(tǒng)用戶的硬件軟件設(shè)備滿足以上條件,即可用該人臉識別軟件進行人臉的識別。</p><p><b>  第二節(jié) 需求分析</b></p><p>  一 應(yīng)用程序的功能需求分析 </p><p>  該軟件最主要的功能就是要能識別出人臉,首先該系統(tǒng)需要對通過攝像頭拍照而獲取到的原始的人

14、臉圖片進行一系列處理才可進行下一步的工作,該處理過程也稱圖像預(yù)處理。預(yù)處理這個模塊在整個人臉識別系統(tǒng)的開發(fā)過程中占有很重要的地位,只有預(yù)處理模塊做的好,才可能很好的完成后面的人臉定位和特征提取這兩大關(guān)鍵模塊。因此本設(shè)計中所要完成的主要功能如下所述:</p><p><b>  圖像獲取功能:</b></p><p>  該模塊主要是從攝像頭拍照后進行獲取圖片,也可以從

15、圖片庫中獲取,獲取后的圖片可以在軟件的界面中顯示出來以便進行識別。</p><p><b>  圖像預(yù)處理功能:</b></p><p>  該模塊主要包括圖像光線補償、圖像變成灰色、高斯平滑、均衡直方圖、實現(xiàn)圖像對比度增強、二值化變換等。</p><p><b>  人臉定位功能:</b></p><

16、p>  該模塊主要是將處理后的人臉圖片進行定位,將眼睛、鼻子、嘴巴標(biāo)記出來,以便進行特征提取。</p><p><b>  特征提取功能:</b></p><p>  該模塊是在定位后的人臉圖片中將眼睛、鼻子、嘴巴的特征值提取出來。</p><p><b>  識別功能:</b></p><p&g

17、t;  該模塊是將從圖片中提取的特征值和后臺數(shù)據(jù)庫中的值進行比較來完成識別功能。</p><p>  第三章 系統(tǒng)的概要設(shè)計</p><p>  本章主要介紹系統(tǒng)的結(jié)構(gòu)設(shè)計的流程以及系統(tǒng)各模塊的功能及相關(guān)原理。</p><p>  應(yīng)用程序的總體結(jié)構(gòu)設(shè)計流程圖如圖3-1所示:</p><p>  圖3-1總體結(jié)構(gòu)設(shè)計流程圖</p&g

18、t;<p>  圖像預(yù)處理的層次圖如圖3-2所示: </p><p>  圖3-2 預(yù)處理的層次圖</p><p>  第一節(jié) 各模塊功能概述</p><p>  以上是該系統(tǒng)的總體結(jié)構(gòu)設(shè)計圖以及圖像預(yù)處理模塊的層次圖。下面介紹系統(tǒng)中的各模塊的功能及算法:</p><p><b>  圖像獲取模塊</b&g

19、t;</p><p>  該模塊主要是從攝像頭拍照后進行獲取圖片,也可以從圖片庫中獲取,獲取后的圖片可以在軟件的界面中顯示出來以便進行識別。</p><p><b>  人臉區(qū)域獲取</b></p><p>  該系統(tǒng)中圖像里人臉區(qū)域的獲取,主要是根據(jù)膚色來進行獲取,通過膚色非線形分段色彩變換來實現(xiàn)。這一非線性分段色彩變換得到的膚色模型屬于色彩

20、空間中的聚類模型,這一類膚色模型的建立首先要選取一種合適的色彩空間。</p><p><b>  圖像預(yù)處理模塊</b></p><p>  圖像預(yù)處理就是對獲取得來的圖像進行適當(dāng)?shù)奶幚恚顾哂械奶卣髂軌蛟趫D像中明顯的表現(xiàn)出來。該模塊中的子模塊有如下5個,下面對它們進行概述:</p><p><b>  ·光線補償[3]&

21、lt;/b></p><p>  因為系統(tǒng)得到的圖片可能會存在光線不平衡的情況,這會影響我們對特征的提取,同時系統(tǒng)中要用到Y(jié)crCB色彩空間,所以有必要對圖像進行光線補償。盡可能將它的特征在圖像中表現(xiàn)出來。YcrCB是一種色彩空間,它用于視頻系統(tǒng)中,在該色彩空間中,Y分量表示像素的亮度,Cr表示紅色分量,Cb表示藍(lán)色分量,通常把Cr和Cb稱為色度。YcrCB色彩空間是以演播室質(zhì)量標(biāo)準(zhǔn)為目標(biāo)的CC601編碼方

22、案中采用的彩色表示模型。</p><p><b>  ·灰度變化[4]</b></p><p>  圖像灰度化的過程就是把彩色圖像轉(zhuǎn)換為黑白色圖像的過程,它也是為了將圖像的信息更加具體、簡單的表現(xiàn)出來,但是,這樣做也將會丟失圖像信息。因此,盡可能在轉(zhuǎn)化的過程中用簡單的方式表現(xiàn)圖像復(fù)雜的信息。</p><p>  ·高斯平滑處

23、理[5]</p><p>  高斯平滑將對圖像進行平滑處理,在圖像采集過程中,由于各種因素的影響,圖像往往會出現(xiàn)一些不規(guī)則的噪聲,入圖像在傳輸、存儲等都有可能產(chǎn)生數(shù)據(jù)的丟失。從而影響圖像的質(zhì)量。處理噪聲的過程稱為平滑。平滑可以降低圖像的視覺噪聲,同時出去圖像中的高頻部分后,那些本來不明顯的低頻成分更容易識別。平滑可以通過卷積來實現(xiàn)。經(jīng)過卷積平滑后的水平投影后,二值化提供了較好的圖像效果。</p>&

24、lt;p><b>  ·對比度增強[6]</b></p><p>  對比度增強,就是對圖像的進一步處理,將對比度再一次拉開。它針對原始圖像的每一個像素直接對其灰度進行處理的,其處理過程主要是通過增強函數(shù)對像素的灰度級進行運算并將運算結(jié)果作為該像素的新灰度值來實現(xiàn)的。通過改變選用的增強函數(shù)的解析表達(dá)式就可以得到不同的處理效果。</p><p><

25、b>  ·二值化[7]</b></p><p>  二值化的目的是將采集獲得的多層次灰度圖像處理成二值圖像,以便于分析理解和識別并減少計算量。二值化就是通過一些算法,通過一個閾值改變圖像中的像素顏色,令整幅圖像畫面內(nèi)僅有黑白二值,該圖像一般由黑色區(qū)域和白色區(qū)域組成,可以用一個比特表示一個像素,“1”表示黑色,“0”表示白色,當(dāng)然也可以倒過來表示,這種圖像稱之為二值圖像。這便有利于我們對

26、特征的提取。該設(shè)計中采用組內(nèi)方差和組外方差來實現(xiàn)二值化。</p><p><b>  ·直方圖均衡[8]</b></p><p>  直方圖均衡化的目的是使一輸入圖像轉(zhuǎn)換為在每一灰度級上都有相同的象素點數(shù),它的處理的中心思想是把原始圖像的灰度直方圖從比較集中的某個灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布,它的研究思路是:通過直方圖變換式來進行直方圖的均衡處理,

27、直方圖變換式是</p><p>  但是直方圖均衡化存在著兩個缺點:   1)變換后圖像的灰度級減少,某些細(xì)節(jié)消失;   2)某些圖像,如直方圖有高峰,經(jīng)處理后對比度不自然的過分增強。</p><p><b>  人臉定位模塊</b></p><p>  人臉定位是將典型的臉部特征(如眼睛,鼻尖,嘴唇等等)標(biāo)記出來,在本系統(tǒng)中,定位

28、的特征是眼睛,鼻尖和嘴巴三個。由于眼睛具有對稱性,因此可以很快就能標(biāo)記出來,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛標(biāo)記好,鼻子和嘴巴也能相應(yīng)的標(biāo)記出來。</p><p><b>  特征提取模塊</b></p><p>  特征提取按以下4個步驟進行:</p><p> ?。?)、提取兩只眼睛的距離</p><p

29、>  (2)、眼睛的傾角度</p><p> ?。?)、眼睛、嘴巴的重心</p><p>  (4)、用一個矩形標(biāo)出每一個特征</p><p>  在特征提取完之后將會得到相應(yīng)的特征值以便存入后臺數(shù)據(jù)庫。</p><p><b>  識別模塊</b></p><p>  該模塊通過與庫存中的

30、特征向量進行比較,找出與特征最相近的參數(shù),再對該參數(shù)進一步分析。如果分析在我們所確認(rèn)的范圍內(nèi),我們就認(rèn)為該人就是我們所要找的。然后從庫存中提取出該人相關(guān)的信息,并顯示出來。如果庫存中沒有,則給出提示是否對存庫作為樣本。</p><p>  第四章 系統(tǒng)的詳細(xì)設(shè)計</p><p>  本章主要對圖像處理這一模塊進行詳細(xì)介紹,對其子模塊所用到的算法及具體實現(xiàn)進行詳細(xì)講述。</p>

31、<p>  第一節(jié) 系統(tǒng)的運行流程圖</p><p>  圖6-1 系統(tǒng)的運行流程圖</p><p>  第二節(jié) 圖像處理詳細(xì)設(shè)計</p><p><b>  一 位圖詳細(xì)設(shè)計</b></p><p>  1 設(shè)備無關(guān)位圖(DIB)</p><p>  VC++沒有提供

32、使用十分方便的DIB繪制方法,只好自己去創(chuàng)建一個實用的DIB類了。本系統(tǒng)中建立了一個專門的類DIB來處理設(shè)備無關(guān)位圖,表4-1列出了對位圖的操作函數(shù)。</p><p>  表6-1 Dib類的部分功能</p><p>  二 圖像點處理詳細(xì)設(shè)計</p><p>  圖像點運算是一種既簡單又重要的技術(shù),它能讓用戶改變圖像數(shù)據(jù)占據(jù)的灰度范圍,一幅輸入圖像經(jīng)過點運算后

33、將產(chǎn)生一幅新的輸出圖像,由輸入像素點的灰度值決定相應(yīng)的輸出像素點的灰度值,點運算與局部運算的差別在于:后者每個輸出像素的灰度值由對應(yīng)輸入像素的一個領(lǐng)域內(nèi)幾個像素的灰度值決定。所以,點運算不可以改變圖像內(nèi)的空間關(guān)系。</p><p>  點運算可以按照預(yù)定的方式改變一幅圖的灰度直方圖。除了灰度級的改變是根據(jù)某種特定的灰度變換函數(shù)進行之外,點運算可以看作是“從像素到像素”的復(fù)制操作。如果輸入圖像為A(x,y),輸出圖

34、像為B(x,y),則點運算可表示為:</p><p>  B(x,y) = f[A(x,y)] (式2)</p><p>  其中函數(shù)f(D)被稱為灰度變換(Gray Scale Transformation ,GST)函數(shù),它描述了輸入灰度值和輸出灰度值之間的轉(zhuǎn)換關(guān)系,一旦灰度變換函數(shù)確定,該點運算就完全被確定下來了。</p><p>  點運算有時又稱為對比度增

35、強、對比度拉伸或灰度變換,它是圖像數(shù)字化軟件和圖像顯示軟件的重要組成部分。下面將對本設(shè)計解決各圖像點處理模塊運用進行到的理論和編程實現(xiàn)進行詳細(xì)講述。</p><p><b>  1、光線補償</b></p><p><b> ?。?)算法思想:</b></p><p>  光線補償?shù)南敕ǖ奶岢鲋饕强紤]到膚色等色彩信息經(jīng)常

36、受到光源顏色、圖像采集設(shè)備的色彩偏差等因素的影響,而在整體上偏離本質(zhì)色彩而向某一方向移動,即我們通常所說的色彩偏冷、偏暖、照片偏黃、便藍(lán)等等。這種現(xiàn)象在藝術(shù)照片中更為常見。所以Anil K.Jain等提出,為了抵消這種整個圖像中存在著的色彩偏差,我們將整個圖像中所有像素亮度(是經(jīng)過了非線形r-校正后的亮度)從高到低進行排列,取前5%的像素,如果這些像素的數(shù)目足夠多(例如,大于100),我們就將它們的亮度作為“參考白”(Reference

37、 White),也即將它們的色彩的R、G、B分量值都調(diào)整為255。整幅圖像的其他像素點的色彩值也都按這一調(diào)整尺度進行交換。 </p><p>  (2) 具體實現(xiàn)光線補償功能:</p><p>  明白了光線補償這功能的算法及思想,就可以編碼實現(xiàn)其功能了,實現(xiàn)過程如下:</p><p> ?、?、 編輯菜單IDR_MAINFRAM,先在其中添加一菜單項,將其命名為“

38、預(yù)處理”,并在其屬性欄中將其設(shè)為“彈出”菜單,點擊預(yù)處理該菜單項將會彈出一個新的子菜單,此時把該子菜單命名為“光線補償”,并把其ID設(shè)為ID_READY_LIGHTINGCONPENSATE,對應(yīng)文件FaceDetectView.Cpp中的函數(shù)ReadyLightingconpensate()實現(xiàn),并在void CFaceDetectView:: OnReadyLightingconpensate()中添加如下代碼:</p>

39、;<p>  hDIBTemp = gDib.CopyHandle(hDIB);</p><p>  gDib.LightingCompensate(hDIB);</p><p>  GlobalUnlock(hDIB);</p><p>  Invalidate();</p><p>  光線補償功能實質(zhì)上是用上段代碼中的Li

40、ghtingCompensate()函數(shù)來進行實現(xiàn)。函數(shù)LightingCompensate()是類DIB的一個成員函數(shù)。其核心代碼如下所述:</p><p>  //下面的循環(huán)對圖像進行光線補償</p><p>  for(i =0;i<height;i++)</p><p>  for(int j=0;j<width;j++)</p>

41、<p><b>  {</b></p><p><b>  //獲取像素偏移</b></p><p>  lOffset = this->PixelOffset(i,j,wBytesPerLine); </p><p><b>  //得到藍(lán)色分量</b></p>&l

42、t;p>  *(lpData+lOffset) = colorb;</p><p><b>  //綠色分量</b></p><p>  colorb = *(lpData+lOffset+1);</p><p>  colorb *=co;</p><p>  if(colorb >255)</p&g

43、t;<p>  colorb = 255;</p><p>  *(lpData+lOffset+1) = colorb;</p><p><b>  //紅色分量</b></p><p>  colorb = *(lpData+lOffset+2);</p><p>  colorb *=co;</

44、p><p>  if(colorb >255)</p><p>  colorb = 255;</p><p>  *(lpData+lOffset+2) = colorb;</p><p><b>  }</b></p><p> ?、?光線補償?shù)男Ч麍D如下所示 :</p>&l

45、t;p><b>  圖 4-1 原圖</b></p><p>  圖4-2 光線補償效果圖</p><p><b>  2、 圖像灰度化</b></p><p><b> ?。?)算法思想</b></p><p> ?、?彩色轉(zhuǎn)換成灰度</p>&

46、lt;p>  將彩色圖像轉(zhuǎn)化為灰階圖像常采用如下的經(jīng)驗式:</p><p>  gray=0.39×R+0.50×G+0.11×B(式3)</p><p>  其中,gray為灰度值,R、G、B分別為紅色、綠色和藍(lán)色分量值。</p><p> ?、?灰度比例變換</p><p>  灰度比例變換是把原像

47、素的灰度乘以一個縮放因子,并最后截至[0,255]。</p><p> ?、?灰度線性變換</p><p>  當(dāng)圖像由于成像時曝光不足或曝光過度,會產(chǎn)生對比度不足的弊病,從而使圖像中的細(xì)節(jié)分辨不清。將圖像灰度進行線性擴展,常能顯著地改善圖像的外觀。灰度線性變換的計算式為:</p><p><b>  g = </b></p>

48、<p><b> ?。ㄊ?)</b></p><p><b>  f,其他</b></p><p>  式中,f是原像素的灰度,g為變換后的灰度。該變換把屬于[a,b]的灰度級變換至灰度區(qū)間[c,d],而沒有在[a,b]區(qū)間的原像素灰度將保持不變。這里a,b,c,d,f,g均為[0,255]之間的整數(shù)值??梢?,a被映射為c,b被映射

49、為d。</p><p><b> ?、?灰度線性截斷</b></p><p>  灰度線性截斷的思想是:如果原像素的灰度小于a,則該像素的灰度等于c;如果原像素的灰度大于b,則該像素的灰度等于d。</p><p> ?。?)具體實現(xiàn)灰度化功能</p><p>  在明白了灰度化的原理之后,就可進行編碼來實現(xiàn)該功能。<

50、;/p><p> ?、?編輯菜單IDR_MAINFRAM,先在其中添加一菜單項,將其命名為”圖像灰度化”,并將其ID號設(shè)為ID_READY_SCALE, 對應(yīng)文件FaceDetectView.Cpp中的函數(shù)ReadyLightingconpensate()實現(xiàn).</p><p> ?、?現(xiàn)該模塊的核心代碼如下:</p><p><b>  獲取藍(lán)色分量&l

51、t;/b></p><p>  ColorB=*(lpData + lOffset); </p><p><b>  獲取綠色分量</b></p><p>  ColorG=*(lpData + lOffset+1); </p><p><b>  獲取紅色分量</b></p>

52、<p>  ColorR=*(lpData + lOffset+2); </p><p><b>  計算灰度值</b></p><p>  gray = (ColorG*50+ColorR*39+ColorB*11)/100;</p><p><b>  顯示灰度圖像</b></p><p

53、>  *(lpData + lOffset)=gray ; </p><p>  *(lpData + lOffset+1)=gray ;</p><p>  *(lpData + lOffset+2)=gray ;</p><p>  其中l(wèi)pData是圖片數(shù)據(jù)區(qū),lOffset是圖片像素的偏移,gray 是圖像的灰度值</p><p&g

54、t;  ③ 圖像灰度化效果圖:</p><p>  圖 4-3 圖像灰度化效果圖</p><p><b>  3、高斯平滑</b></p><p><b>  (1) 算法思想</b></p><p>  在介紹高斯平滑前,先介紹模板操作。模板操作是數(shù)字圖像處理中經(jīng)常用到的一種運算方法,圖像的平

55、滑、銳化以及細(xì)化、邊緣檢測都要用到模板操作。例如:有一種常見的平滑算法是將原圖中一個像素的灰度值和它周圍鄰近八個像素的灰度值相加,然后求得的平均值(除以9)作為新圖中該像素的灰度值,用如下方法來表示該操作:</p><p>  1 1 1</p><p><b>  1/9 </b></p><p>  1 1&#

56、183; 1</p><p>  1 1 1 </p><p>  上式類似于矩陣,我們通常稱之為模板。中間的黑點表示該元素中心元素,即該個元素是要進行處理的元素。如果模板是:</p><p>  1· 1 1</p><p>  1/9 1 1 1</p><

57、p>  1 1 1</p><p>  則該操作應(yīng)該描述為:將原圖中一個像素的灰度值和它右下鄰近的8個像素的灰度值相加,然后將求得的平均值9(除以9)作為新圖中該像素的灰度值。如果模板為 2. ,</p><p><b>  1</b></p><p>  則表示將自身灰度值的2倍加下邊的元素灰度值作為新值,而

58、 2 則表示將自身</p><p><b>  1.</b></p><p>  灰度值加上邊元素灰度值的2倍作為新灰度值。通常模板不允許移出邊界,所以處理后的圖像會比原圖小,例如:當(dāng)模板是 1. 0 原圖灰度值矩陣是 1 1 1 1 1 </p><p>  0 2

59、2 2 2 2 2</p><p>  3 3 3 3 3 </p><p>  4 4 4 4 4 </p><p>  時,經(jīng)過模板操作后的圖像為 5 5 5 5 - </p><p>  8 8 8

60、 8 - </p><p>  11 11 11 11 - </p><p>  - - - - - </p><p>  “-”表示邊界上無法進行模板操作的點,一般的做法是復(fù)制原圖的灰度值,不再進行任何其他的處理。模板操作實現(xiàn)了一種領(lǐng)

61、域運算,即某個像素點的結(jié)果不僅和本像素灰度有關(guān),而且和其領(lǐng)域點的值有關(guān)。下面對平滑的用途和解決方法進行詳細(xì)介紹。</p><p>  在圖像的采集過程中,由于各種因素的影響,圖像中往往會出現(xiàn)一些不規(guī)則的隨機噪聲,如數(shù)據(jù)在傳輸、存儲時發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會影響圖像的質(zhì)量。處理噪聲點的過程稱之為平滑,平滑可以降低圖像的視覺噪聲,同時除去圖像中的高頻部分后,那些本來不明顯的低頻成分更容易識別。而噪聲點一般是孤

62、</p><p>  立的點,噪聲點的像素灰度與它們的近鄰像素有顯著的區(qū)別,即灰度變化總在這附近有突變高頻。平滑可用卷積來實現(xiàn),平滑的頻率截止點由卷積核的大小及卷積系數(shù)決定。用于平滑濾波的卷積核叫做低通過濾波器,低通過濾波器具有如下的特征:1卷積核的行、列數(shù)為奇數(shù),通常為3×3的矩陣;2卷積系數(shù)以中心點為中心對稱分布;3所有的卷積系數(shù)都為正數(shù);4距離中心較遠(yuǎn)的卷積系數(shù)的值較小或保持不變;5卷積后的結(jié)果不

63、改變圖像的亮度。經(jīng)過卷積平滑后給隨后的水平投影、二值化提供了較好的圖像效果。水平投影的曲線顯得比較平滑,二值化后的圖像孤立點比較少。以下是幾個常用的卷積核:</p><p>  1/9 1/9 1/9 1/10 1/10 1/10 1/16 2/16 1/16</p><p>  1/9 1/9 1/9

64、 1/10 1/5 1/10 2/16 4/16 2/16</p><p>  1/9 1/9 1/9 1/10 1/10 1/10 1/16 2/16 1/16</p><p>  L P1 LP2

65、LP3</p><p>  通常的處理是:將中心點周圍八個點的像素值乘于各自矩陣相應(yīng)的系數(shù)后相加得到一個值,然后將這個值乘上中心點的系數(shù),中心點的像素值賦為得到的最后值。一般來說,不同的噪聲有各自針對性的卷積算法。本文使用的卷積算法是高斯卷積核,亦即上面卷積核的LP3。高斯卷積是通過采樣2維高斯函數(shù)得到的。高斯平滑算法的優(yōu)點是平滑后圖像的失真少,算法更具備通用性,能去除不同的噪聲干擾。需要注意的是:在平滑處理時,

66、圖像邊界點無法處理,因此循環(huán)范圍應(yīng)設(shè)定在圖像邊界內(nèi)。</p><p>  (2) 具體實現(xiàn)高斯平滑功能</p><p>  知道高斯平滑原理之后,可進行編碼將其實現(xiàn):</p><p>  編輯菜單IDR_MAINFRAM,在菜單“預(yù)處理”中添加一子菜單項,命名為“高斯平滑”并將其ID設(shè)為ID_READY_Template。</p><p> 

67、 在類CFaceDetectView中添加“高斯平滑”菜單項的事件處理程序,其代碼如下:</p><p><b>  //進行模板操作</b></p><p>  Template(tem ,3,3, xishu); </p><p>  Invalidate(TRUE); </p><p>  其中tem是模板參

68、數(shù),xishu是模板系數(shù);Template()函數(shù)是實現(xiàn)高斯平滑的主要函數(shù),其核心代碼是:</p><p>  for(m=i-((tem_h-1)/2);m<=i+((tem_h-1)/2);m++)</p><p><b>  {</b></p><p>  for(n=j-((tem_w-1)/2);n<=j+((tem_w-

69、1)/2);n++)</p><p>  注: 將以點(i,j)為中心,與模板大小相同的范圍內(nèi)的象素與模板對用位置的系數(shù)進行相乘并線形疊加 </p><p>  sum+=Gray[m][n]* tem[(m-i+((tem_h-1)/2))*tem_w+n-j+((tem_w-1)/2)];</p><p>  } </p>

70、<p>  將結(jié)果乘上總的模板系數(shù)</p><p>  sum=(int)sum*xishu;</p><p><b>  計算絕對值</b></p><p>  sum = fabs(sum);</p><p>  如果小于0,強制賦值為0</p><p>  if(sum<0)

71、 </p><p><b>  sum=0;</b></p><p>  如果大于255,強制賦值為255</p><p>  if(sum>255)</p><p><b>  sum=255;</b></p><p>  HeightTemplate[i][

72、j] = sum;</p><p>  高斯平滑效果圖:見下圖 4-4</p><p>  圖4-4 高斯平滑效果圖</p><p><b>  4、灰度均衡</b></p><p><b> ?。?)算法思想</b></p><p>  灰度均衡也稱直方圖均衡,目的是

73、通過點運算使輸入轉(zhuǎn)換為在每一灰度級上都有相同的像素點數(shù)的輸出圖像(即輸出的直方圖是平的)。這對于在進行圖像比較或分割之前將圖像轉(zhuǎn)化為一級的格式是十分有效的。</p><p>  按照圖像的概率密度函數(shù)(PDF,歸一化帶單位面積的直方圖)的定義:</p><p>  P(x) = * H(x)(式5)</p><p>  其中H(x)為直方圖,A0為圖像的面積,設(shè)

74、轉(zhuǎn)換前圖像的概率密度函數(shù)為</p><p>  Pr(r),轉(zhuǎn)換后圖像的概率密度函數(shù)為Ps(S),轉(zhuǎn)換函數(shù)為s = f(r),由概率論知識,我們可以得到:</p><p>  Ps(S) = Pr(r)* (式6)</p><p>  這樣,如果想使轉(zhuǎn)換后圖像的概率密度函數(shù)為1(即直方圖是平的)則必須滿足:</p><p>  Pr(r)

75、= (式4-5)</p><p>  等式兩邊積分,得: </p><p>  S = f(r)= ∫0 rP2(u)du =∫0 r H(u)du (式7)</p><p>  該轉(zhuǎn)換式被稱為圖像的累積分布函數(shù)</p><p>  上面的式是被歸一化后推導(dǎo)的對于沒有歸一化的情況,只要求以最大的灰度值(DMax,對于灰度圖就是255)即

76、可,灰度均衡的轉(zhuǎn)換式為:</p><p>  DB = f (DA)= H(u)du (式1)</p><p>  對于離散圖像轉(zhuǎn)換式為:</p><p>  DB = f(DA)= (式8) </p><p>  式中Hi為第i級灰度的像素個數(shù)。</p><p>

77、;<b> ?。?)編程實現(xiàn)</b></p><p>  在灰度均衡操作同樣不需要改變DIB的調(diào)色板和文件夾,只要把指向DIB像素起始位置的指針和DIB高度、寬度信息傳遞給子函數(shù)就可以完成灰度均衡變換工作,其核心代碼如下: </p><p>  *(lpData + lOffset)=state ; //顯示灰度均衡</p><p>  *(l

78、pData + lOffset+1)=state ;</p><p>  *(lpData + lOffset+2)=state ;</p><p><b>  (3)效果圖</b></p><p>  圖 4-5 灰度均衡效果圖</p><p><b>  5、圖像對比度增強</b></p&

79、gt;<p><b>  算法思想:</b></p><p>  在對圖像均衡直方圖處理以后,便可對圖像進行對比度增強,進一步拉開對比度。它通過對圖像的灰度值進行統(tǒng)計,對于比最小設(shè)定值小的則認(rèn)為是有關(guān)的信息,則將它作為黑色處理,比最大設(shè)定值大的則認(rèn)為是一些無關(guān)的信息,將它們?nèi)サ?,而處于兩者之間的,則進行對比度增強,將他們在總的灰度值里面的比例作為新的像素信息保存起來。</

80、p><p>  這個工作的主要目的是將圖像的特征一步一步顯現(xiàn)出來。</p><p><b> ?。?) 編碼實現(xiàn):</b></p><p>  ① 編輯菜單IDR_MAINFRAM,在菜單“預(yù)處理”中添加一子菜單項,命名為“實現(xiàn)圖像對比度增強”,并將其ID設(shè)為ID_READY_ContrastEnhance。</p><p&g

81、t;  類CFaceDetectView中添加“實現(xiàn)圖像對比度增強”菜單項的事件處理程序,其代碼如下;</p><p>  lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);</p><p>  獲取圖像灰度增強函數(shù)</p><p>  int state=IncreaseContrast(ZFT[k][k1], 10

82、0); </p><p>  顯示灰度增強后的圖像</p><p>  *(lpData + lOffset ) = state ;</p><p>  *(lpData + lOffset+1) = state ;</p><p>  *(lpData + lOffset+2) = state ;</p><p&

83、gt;  其中IncreaseContras()函數(shù)是實現(xiàn)圖像對比度增強的關(guān)鍵函數(shù),該根據(jù)參數(shù)n來調(diào)節(jié)對比度,n越大,對比越強烈,其核心是:</p><p>  如果數(shù)據(jù)很小,設(shè)置為0</p><p>  if(pByte<=Low)</p><p><b>  return 0;</b></p><p>  獲得

84、中間數(shù)據(jù),并進行對比增強處理</p><p>  else if ((Low<pByte)&&(pByte<High))</p><p>  return int(((pByte-Low)/Grad));</p><p>  如果數(shù)據(jù)很大,設(shè)置為255</p><p><b>  else</b&g

85、t;</p><p>  return 255;</p><p><b>  效果圖</b></p><p>  圖4-6 對比度增強效果圖</p><p>  2.3圖像處理功能的Matlab實現(xiàn)實例</p><p>  本文通過運用圖像處理工具箱的有關(guān)函數(shù)對一人臉的彩色圖像進行處理。<

86、;/p><p><b>  1)圖像類型的轉(zhuǎn)換</b></p><p>  因后面的圖像增強,邊緣檢測都是針對灰度圖像進行的,而我們的原圖是RGB圖像,所以首先我們要對原圖類型進行轉(zhuǎn)換。實現(xiàn)過程代碼如下:</p><p>  i=imread('f:\face1.jpg');j=rgb2gray(i);</p><

87、;p>  imshow(j);imwrite(j,'f:\face1.tif')</p><p><b>  效果圖2.1</b></p><p><b>  圖2.1</b></p><p><b>  2)圖像增強</b></p><p>  (1)灰

88、度圖像直方圖均衡化</p><p>  通過比較原圖和直方圖均衡化后的圖像可見,圖像變得更清晰,而且均衡化后的直方圖比原直方圖的形狀更理想。該部分的程序代碼如下:</p><p>  i=imread('f:\face1.tif');</p><p>  j=histeq(i);imshow(j);</p><p>  fig

89、ure,subplot(1,2,1),imhist(i);</p><p>  subplot(1,2,2),imhist(j)</p><p>  執(zhí)行后的效果圖如圖2.2和圖2.3:</p><p>  圖2.2均衡化后的灰度圖像 圖2.3均衡化前后的直方圖對比圖</p><p>  (2)灰度圖像平滑與銳化處理&

90、lt;/p><p>  平滑濾波器的目的在于模糊圖像或消除噪聲,Matlab7.0圖像處理工具箱提供了medfilter2()函數(shù)用于實現(xiàn)中值濾波,wiener2()實現(xiàn)對圖像噪聲的自適應(yīng)濾波。在本文實例中,為了使濾波效果更明顯,我們事先為圖像認(rèn)為增加濾波,然后用自適應(yīng)濾波方法對圖像進行濾波。銳化處理的目的在于強調(diào)圖像被模糊的細(xì)節(jié),在本實例中采用了預(yù)定義高斯濾波器的方法對圖像進行銳化濾波。功能實現(xiàn)的代碼如下:<

91、/p><p>  i=imread('f:\fae1.tif');</p><p>  j=imnoise(i,'guassian',0,0.02);</p><p>  subplot(1,2,1),imshow(j);</p><p>  j1=wiener2(j);subplot(1,2,2),imshow(

92、j1);</p><p>  h=fspecial('gaussian',2,0.05);j2=imfilter(i,h);figure,subplot(1,2,1),imshow(i)</p><p>  subplot(1,2,2),imshow(j2)</p><p>  得到的效果圖如圖2.4和圖2.5:</p><p&g

93、t;  加入噪聲的圖像 濾波后的圖像</p><p>  圖2.4 平滑濾波效果</p><p>  原灰度圖像 銳化后的圖像</p><p>  圖2.5 銳化濾波效果圖</p><p><b>  3)邊緣檢測</b>

94、</p><p>  Matlab7.0圖像處理工具箱提供了edge()函數(shù)實現(xiàn)邊緣檢測,還</p><p>  有各種方法算子供選擇,在本實例中采用了canny算子來進行邊緣檢</p><p><b>  測,</b></p><p>  第三節(jié) 編程時的問題解決</p><p><b&

95、gt;  1、光線補償</b></p><p>  由于要改變每一個像素的亮度,開始,我通過對數(shù)幅圖像使用一個固定的值進行測試,得到的效果都滿理想,但是當(dāng)對更多的圖像處理時,該固定值就出現(xiàn)了明顯的不足,最后不得不采用全局統(tǒng)計的方法,才能得到比較理想的效果。 </p><p><b>  2、高斯平滑</b></p><p>  

96、高斯平滑用于消除圖片噪音,為了實現(xiàn)此功能,我們使用了模板操作,因此模板參數(shù)的選擇是最重要的。高斯平滑效果的好壞取決與模板參數(shù)。在編程的時候,試探性的進行參數(shù)的選擇,然后進行比較,看那組參數(shù)可以達(dá)到最好的效果。模板參數(shù)是</p><p><b>  原先采用了</b></p><p>  1/9 1/9 1/9 </p><p>  

97、1/9 1/9 1/9 </p><p>  1/9 1/9 1/9 </p><p>  形式,但是,得到的效果卻是令人失望。</p><p><b>  后來又用了</b></p><p>  1/10 1/10 1/10</p><p>  1/10

98、 1/5 1/10</p><p>  1/10 1/10 1/10</p><p>  形式,但是,結(jié)果仍然是未能達(dá)到預(yù)期的效果。</p><p><b>  直到最后采用的</b></p><p>  1/16 2/16 1/16</p><p>  2

99、/16 4/16 2/16</p><p>  1/16 2/16 1/16</p><p>  形式,才得到了比較合理的效果。</p><p><b>  3、 均衡直方圖</b></p><p>  開始時,圖像的會度一直都處于很散的狀態(tài),而且圖像的特征不明顯,原本想經(jīng)過高斯平滑后進行灰度

溫馨提示

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

評論

0/150

提交評論