人臉識別課程設(shè)計報告書_第1頁
人臉識別課程設(shè)計報告書_第2頁
人臉識別課程設(shè)計報告書_第3頁
人臉識別課程設(shè)計報告書_第4頁
人臉識別課程設(shè)計報告書_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

可編輯版/可編輯版基于Matlab的人臉識別課程設(shè)計題目:基于MATLAB的人臉識別院系:信息工程學院專業(yè):電子信息工程姓名:黃軍紅學號:2指導(dǎo)老師:何江萍摘要人臉識別因其在安全驗證系統(tǒng)、信用卡驗證、醫(yī)學、檔案管理、視頻會議、人機交互、系統(tǒng)公安<罪犯識別等>等方面的巨大應(yīng)用前景而越來越成為當前模式識別和人工智能領(lǐng)域的一個研究熱點。本文提出了基于24位彩色圖像對人臉進行識別的方法,介紹的主要內(nèi)容是圖像處理,它在整個軟件中占有極其重要的地位,圖像處理的好壞直接影響著定位和識別的準確率。本軟件主要用到的圖像處理技術(shù)是:光線補償、高斯平滑和二值化。在識別前,先對圖像進行補光處理,再通過膚色獲得可能的臉部區(qū)域,最后根據(jù)人臉固有眼睛的對稱性來確定是否就是人臉,同時采用高斯平滑來消除圖像的噪聲,再進行二值化,二值化主要采用局域取閾值方法,接下來就進行定位、提取特征值和識別等操作。經(jīng)過測試,圖像預(yù)處理模塊對圖像的處理達到了較好的效果,提高了定位和識別的正確率。[關(guān)鍵字]:人臉識別;光線補償;高斯平滑;對比度增強AbstractFacerecognitionisacomplexanddifficultproblemthatisimportantforsurveillanceandsecurity,telecommunications,digitallibraries,videomeeting,andhuman-computerintelligentinteractions.Thepaperintroducedthemethodoffacerecognitionthatbasedonthe24bitmulticolorimage,Maincontentthatthepaperintroducedisthepicturetreatment,Itoccupiestheextremelyimportantpositioninthewholesoftware,thequalityofpictureprocessdirectlyinfluencedtheaccuracyrateoflocalizationanddiscerning.Thepictureprocesstechnologythatthesoftwaremainlyusedincluded:lightcompensating、gausssmoothandtwainvaluemethod.beforediscerning,wecompensatedthelightforimage,thenwecouldobtainthepossiblefaceareathroughthecomplexion,finally,thesystemcoulddependonthesymmetryofeyestomakesurewhetheritisthefaceofpeople,atthesametime,thesystemcouldeliminatenoisesthroughthemethodthatnamedgausssmoothness,thenweusedtwainvaluemethodtodealwithpicture,themethodgotthethresholdvalueinfacearea.Afterdealingwithpicture,thefollowingoperationsarelocalization、drawcharacteristicvalue、discerningandsoon.Aftertesting,wemadetruethatthepicturepretreatmentmodalhasgetthebettereffectintheprocessofdealingwithpicture,andimprovetheexactnessrateoflocalizationanddiscerning.[keyword]:Facerecognition;lightcompensating;gausssmooth;contrastenhancing目錄一、緒論11.背景12.人臉識別技術(shù)研究的意義13.發(fā)展史21>國外的發(fā)展22>國內(nèi)的發(fā)展3二、系統(tǒng)的需求分析和方案選擇31.可行性分析31>技術(shù)可行性32>操作可行性42.需求分析43.預(yù)處理法案選擇51>設(shè)計方案的原則選擇52>圖像文件格式選擇53>開發(fā)工具選擇54>算法選擇分析6三、系統(tǒng)概要設(shè)計7四、系統(tǒng)詳細設(shè)計91.系統(tǒng)整體設(shè)計流程圖92.圖像處理詳細設(shè)計103.編程時的問題解決19五、測試201.測試方案的選擇原則212.測試方案21結(jié)束語23參考文獻24緒論背景隨著安全入口控制和金融貿(mào)易方面應(yīng)用需要的快速增長,生物統(tǒng)計識別技術(shù)得到了新的重視。目前,微電子和視覺系統(tǒng)方面取得的新進展,使該領(lǐng)域中高性能自動識別技術(shù)的實現(xiàn)代價降低到了可以接受的程度。而人臉識別是所有的生物識別方法中應(yīng)用最廣泛的技術(shù)之一,人臉識別技術(shù)是一項近年來興起的,但不大為人所知的新技術(shù)。人們更多的是在電影中看到這種技術(shù)的神奇應(yīng)用:警察將偷拍到的嫌疑犯的臉部照片,輸入到電腦中,與警方數(shù)據(jù)庫中的資料進行比對,并找出該嫌犯的詳細資料和犯罪記錄。這并非虛構(gòu)的情節(jié)。在國外,人臉識別技術(shù)早已被大量使用在國家重要部門以及軍警等安防部門。在國內(nèi),對于人臉識別技術(shù)的研究始于上世紀90年代,目前主要應(yīng)用在公安、金融、網(wǎng)絡(luò)安全、物業(yè)管理以及考勤等領(lǐng)域。人臉識別技術(shù)研究的意義富有挑戰(zhàn)性的課題面部關(guān)鍵特征定位及人臉2D形狀檢測技術(shù)面部感知系統(tǒng)的重要內(nèi)容視頻輸入視頻輸入人臉檢測和跟蹤面部特征定位人臉識別表情分析性別判斷種族判斷年齡判別唇讀身份信息情感狀態(tài)性別信息種族信息年齡信息唇形類別發(fā)展史國外的發(fā)展見諸文獻的機器自動人臉識別研究開始于1966年P(guān)RI的Bledsoe的工作,1990年日本研制的人像識別機,可在1秒鐘內(nèi)中從3500人中識別到你要找的人。1993年,美國國防部高級研究項目署<AdvancedResearchProjectsAgency>和美國陸軍研究實驗室<ArmyResearchLaboratory>成立了Feret<FaceRecognitionTechnology>項目組,建立了feret人臉數(shù)據(jù)庫,用于評價人臉識別算法的性能。美國陸軍實驗室也是利用vc++開發(fā),通過軟件實現(xiàn)的,并且FAR為49%。在美國的進行的公開測試中,FAR,為53%。美國國防部高級研究項目署,利用半自動和全自動算法。這種算法需要人工或自動指出圖像中人的兩眼的中心坐標,然后進行識別。在機場開展的測試中,系統(tǒng)發(fā)出的錯誤警報太多,國外的一些高?!部▋?nèi)基梅隆大學〔CarnegieMellonUniversity為首,麻省理工大學〔MassachusettsInstituteofTechnology等,英國的雷丁大學〔UniversityofReading和公司〔Visionics公司Facelt人臉識別系統(tǒng)、Viiage的FaceFINDER身份驗證系統(tǒng)、LauTech公司Hunter系統(tǒng)、德國的BioID系統(tǒng)等的工程研究工作也主要放在公安、刑事方面,在考試驗證系統(tǒng)的實現(xiàn)方面深入研究并不多。國內(nèi)的發(fā)展人臉識別系統(tǒng)現(xiàn)在在大多數(shù)領(lǐng)域中起到舉足輕重的作用,尤其是用在機關(guān)單位的安全和考勤、網(wǎng)絡(luò)安全、銀行、海關(guān)邊檢、物業(yè)管理、軍隊安全、智能身份證、智能門禁、司機駕照驗證、計算機登錄系統(tǒng)。我國在這方面也取得了較好的成就,國家863項目"面像檢測與識別核心技術(shù)"通過成果鑒定并初步應(yīng)用,就標志著我國在人臉識別這一當今熱點科研領(lǐng)域掌握了一定的核心技術(shù)。北京科瑞奇技術(shù)開發(fā)股份有限公司在20XX開發(fā)了一種人臉鑒別系統(tǒng),對人臉圖像進行處理,消除了照相機的影響,再對圖像進行特征提取和識別。這對于人臉鑒別特別有價值,因為人臉鑒別通常使用正面照,要鑒別的人臉圖像是不同時期拍攝的,使用的照相機不一樣。系統(tǒng)可以接受時間間隔較長的照片,并能達到較高的識別率,在計算機中庫藏2300人的正面照片,每人一張照片,使用相距1--7年、差別比較大的照片去查詢,首選率可以達到50%,前20張輸出照片中包含有與輸入照片為同一人的照片的概率可達70%。2005年1月18日,由清華大學電子系人臉識別課題組負責人蘇光大教授主持承擔的國家"十五"攻關(guān)項目《人臉識別系統(tǒng)》通過了由公安部主持的專家鑒定。鑒定委員會認為,該項技術(shù)處于國內(nèi)領(lǐng)先水平和國際先進水平。系統(tǒng)的需求分析和方案選擇在開發(fā)該人臉識別軟件之前,我們查詢了前人所寫過的諸多論文以及源程序,在開發(fā)之時,結(jié)合了資料中的算法并揉進了自己的一些思想,使程序可以對人臉圖片進行簡易識別??尚行苑治黾夹g(shù)可行性圖像的處理方法很多,我們可以根據(jù)需要,有選擇地使用各種方法。在確定臉部區(qū)域上,通常使用的方法有膚色提取。膚色提取,則對臉部區(qū)域的獲取則比較準確,成功率達到95%以上,并且速度快,減少很多工作。圖像的亮度變化,由于圖像的亮度在不同環(huán)境的當中,必然受到不同光線的影響,圖像就變得太暗或太亮,我們就要對它的亮度進行調(diào)整,主要采取的措施是對圖像進行光線補償。高斯平滑:在圖像的采集過程中,由于各種因素的影響,圖像中往往會出現(xiàn)一些不規(guī)則的隨機噪聲,如數(shù)據(jù)在傳輸、存儲時發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會影響圖像的質(zhì)量,因此需要將圖片進行平滑操作以此來消除噪聲。灰度變換:進行灰度處理,我們要保證圖像信息盡可能少的丟失。同樣在進行灰度變換前,我們也要對圖像的信息進行統(tǒng)計,找出一個比較合理的灰度值,才能進行灰度變換?;叶染猓夯叶茸儞Q后,就要進行灰度均衡,可以根據(jù)灰度分布來進行灰度均衡。對比度增強:將所要處理的區(qū)域和周圍圖像區(qū)域進一步拉開他們的對比度,使它們更加明顯,主要通過像素的聚集來實現(xiàn)。操作可行性該人臉識別軟件需要如下的運行環(huán)境:CPU:500M及以上;內(nèi)存:64M及以上。安裝有Windows98、WindowsMe、Windows2000、WindowsNT等操作系統(tǒng)中的其中一種。另還裝有攝像頭可進行隨機拍照和識別。因此,從操作可行性來看,只要系統(tǒng)用戶的硬件軟件設(shè)備滿足以上條件,即可用該人臉識別軟件進行人臉的識別。需求分析應(yīng)用程序的功能需求分析該軟件最主要的功能就是要能識別出人臉,首先該系統(tǒng)需要對通過攝像頭拍照而獲取到的原始的人臉圖片進行一系列處理才可進行下一步的工作,該處理過程也稱圖像預(yù)處理。預(yù)處理這個模塊在整個人臉識別系統(tǒng)的開發(fā)過程中占有很重要的地位,只有預(yù)處理模塊做的好,才可能很好的完成后面的人臉定位和特征提取這兩大關(guān)鍵模塊。因此本設(shè)計中所要完成的主要功能如下所述:圖像獲取功能:該模塊主要是從攝像頭拍照后進行獲取圖片,也可以從圖片庫中獲取,獲取后的圖片可以在軟件的界面中顯示出來以便進行識別。圖像預(yù)處理功能:該模塊主要包括圖像光線補償、圖像變成灰色、高斯平滑、均衡直方圖、實現(xiàn)圖像對比度增強、二值化變換等。人臉定位功能:該模塊主要是將處理后的人臉圖片進行定位,將眼睛、鼻子、嘴巴標記出來,以便進行特征提取。特征提取功能:該模塊是在定位后的人臉圖片中將眼睛、鼻子、嘴巴的特征值提取出來。識別功能:該模塊是將從圖片中提取的特征值和后臺數(shù)據(jù)庫中的值進行比較來完成識別功能。預(yù)處理法案選擇設(shè)計方案的原則選擇本應(yīng)用程序的設(shè)計方案原則如下:采用較為先進的技術(shù)力量,保證應(yīng)用程序在技術(shù)上具備一定的優(yōu)勢。采用成熟的技術(shù),保證應(yīng)用程序的安全性和可靠性。應(yīng)用程序便于擴展和維護,易于技術(shù)的更新。應(yīng)用程序充分利用現(xiàn)有的資源,盡量減少不必要的再投資。編寫的代碼必須嚴謹易讀,代碼的解釋必須清楚明白,為應(yīng)用程序的再開發(fā)提供應(yīng)盡的責任。圖像文件格式選擇在設(shè)計的過程中,為了定位和特征提取的方便,我們采用的是24位位圖。開發(fā)工具選擇Matlab2012b算法選擇分析本文主要研究的對象是圖像預(yù)處理模塊,該模塊分為光線補償、圖像灰度化、高斯平滑、圖像對比度增強、均衡直方圖,每個小模塊的實現(xiàn)都有許多相應(yīng)的算法。下面將本系統(tǒng)采用的算法進行介紹:·光線補償:由于光線原因,所照的圖像可能會存在光線不平衡的情況而造成色彩偏差,為了抵消這種整個圖像中存在的色彩偏差,本系統(tǒng)采用的解決方法是:將整個圖像中的所有像素的亮度從高到低進行排列,取前5%的像素,然后線性放大,使這些像素的平均亮度達到255。實際上就是調(diào)整圖片像素的RGB值?!D像灰度化:圖像灰度化是將圖像變成灰色,本系統(tǒng)中采用以下步驟來實現(xiàn)圖像的灰度化:彩色轉(zhuǎn)換成灰度、灰度比例變換、灰度線性變換、灰度線性截斷、灰度取反?!じ咚蛊交涸趫D像的采集過程中,由于各種因素的影響,圖像中往往會出現(xiàn)一些不規(guī)則的隨機噪聲,如數(shù)據(jù)在傳輸、存儲時發(fā)生的數(shù)據(jù)丟失和損壞等,這些都會影響圖像的質(zhì)量,因此需要將圖片進行平滑操作以此來消除噪聲。但是如果平滑不當,就會使圖像本身的細節(jié)如邊界輪廓、線條等變的模糊不清,為了既平滑掉噪聲有盡量保持圖像細節(jié),本系統(tǒng)采用高斯平滑?!ぞ庵狈綀D:使用該模塊的目的是通過點運算使輸入轉(zhuǎn)換為在每一灰度級上都有相同的像素點數(shù)的輸出圖像。它的實現(xiàn)主要是利用灰度均衡的轉(zhuǎn)換式DB=f〔DA=H〔udu。〔式1·圖像對比度增強:為了將圖像的特征一步一步顯現(xiàn)出來,需要進行圖像的對比度增強,它主要通過對圖像的灰度值進行統(tǒng)計,對于小于Low則認為是有關(guān)的信息,則將它作為黑色處理,對于處于High以上的則認為是一些無關(guān)的信息,將它們?nèi)サ?而處于兩者之間的,則進行對比度增強,將他們在總的灰度值里面的比例作為新的像素信息保存起來。系統(tǒng)概要設(shè)計各模塊功能概述以上是該系統(tǒng)的總體結(jié)構(gòu)設(shè)計圖以及圖像預(yù)處理模塊的層次圖。下面介紹系統(tǒng)中的各模塊的功能及算法:圖像獲取模塊該模塊主要是從攝像頭拍照后進行獲取圖片,也可以從圖片庫中獲取,獲取后的圖片可以在軟件的界面中顯示出來以便進行識別。人臉區(qū)域獲取該系統(tǒng)中圖像里人臉區(qū)域的獲取,主要是根據(jù)膚色來進行獲取,通過膚色非線形分段色彩變換來實現(xiàn)。這一非線性分段色彩變換得到的膚色模型屬于色彩空間中的聚類模型,這一類膚色模型的建立首先要選取一種合適的色彩空間。圖像預(yù)處理模塊圖像預(yù)處理就是對獲取得來的圖像進行適當?shù)奶幚?使它具有的特征能夠在圖像中明顯的表現(xiàn)出來。該模塊中的子模塊有如下5個,下面對它們進行概述:·光線補償[3]因為系統(tǒng)得到的圖片可能會存在光線不平衡的情況,這會影響我們對特征的提取,同時系統(tǒng)中要用到Y(jié)crCB色彩空間,所以有必要對圖像進行光線補償。盡可能將它的特征在圖像中表現(xiàn)出來。YcrCB是一種色彩空間,它用于視頻系統(tǒng)中,在該色彩空間中,Y分量表示像素的亮度,Cr表示紅色分量,Cb表示藍色分量,通常把Cr和Cb稱為色度。YcrCB色彩空間是以演播室質(zhì)量標準為目標的CC601編碼方案中采用的彩色表示模型?!せ叶茸兓痆4]圖像灰度化的過程就是把彩色圖像轉(zhuǎn)換為黑白色圖像的過程,它也是為了將圖像的信息更加具體、簡單的表現(xiàn)出來,但是,這樣做也將會丟失圖像信息。因此,盡可能在轉(zhuǎn)化的過程中用簡單的方式表現(xiàn)圖像復(fù)雜的信息?!じ咚蛊交幚韀5]高斯平滑將對圖像進行平滑處理,在圖像采集過程中,由于各種因素的影響,圖像往往會出現(xiàn)一些不規(guī)則的噪聲,入圖像在傳輸、存儲等都有可能產(chǎn)生數(shù)據(jù)的丟失。從而影響圖像的質(zhì)量。處理噪聲的過程稱為平滑。平滑可以降低圖像的視覺噪聲,同時出去圖像中的高頻部分后,那些本來不明顯的低頻成分更容易識別。平滑可以通過卷積來實現(xiàn)。經(jīng)過卷積平滑后的水平投影后,二值化提供了較好的圖像效果?!Ρ榷仍鰪奫6]對比度增強,就是對圖像的進一步處理,將對比度再一次拉開。它針對原始圖像的每一個像素直接對其灰度進行處理的,其處理過程主要是通過增強函數(shù)對像素的灰度級進行運算并將運算結(jié)果作為該像素的新灰度值來實現(xiàn)的。通過改變選用的增強函數(shù)的解析表達式就可以得到不同的處理效果?!ざ祷痆7]二值化的目的是將采集獲得的多層次灰度圖像處理成二值圖像,以便于分析理解和識別并減少計算量。二值化就是通過一些算法,通過一個閾值改變圖像中的像素顏色,令整幅圖像畫面內(nèi)僅有黑白二值,該圖像一般由黑色區(qū)域和白色區(qū)域組成,可以用一個比特表示一個像素,"1"表示黑色,"0"表示白色,當然也可以倒過來表示,這種圖像稱之為二值圖像。這便有利于我們對特征的提取。該設(shè)計中采用組內(nèi)方差和組外方差來實現(xiàn)二值化。·直方圖均衡[8]直方圖均衡化的目的是使一輸入圖像轉(zhuǎn)換為在每一灰度級上都有相同的象素點數(shù),它的處理的中心思想是把原始圖像的灰度直方圖從比較集中的某個灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布,它的研究思路是:通過直方圖變換式來進行直方圖的均衡處理,直方圖變換式是但是直方圖均衡化存在著兩個缺點:

變換后圖像的灰度級減少,某些細節(jié)消失;

某些圖像,如直方圖有高峰,經(jīng)處理后對比度不自然的過分增強。人臉定位模塊人臉定位是將典型的臉部特征〔如眼睛,鼻尖,嘴唇等等標記出來,在本系統(tǒng)中,定位的特征是眼睛,鼻尖和嘴巴三個。由于眼睛具有對稱性,因此可以很快就能標記出來,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛標記好,鼻子和嘴巴也能相應(yīng)的標記出來。特征提取模塊特征提取按以下4個步驟進行:提取兩只眼睛的距離眼睛的傾角度眼睛、嘴巴的重心用一個矩形標出每一個特征在特征提取完之后將會得到相應(yīng)的特征值以便存入后臺數(shù)據(jù)庫。識別模塊該模塊通過與庫存中的特征向量進行比較,找出與特征最相近的參數(shù),再對該參數(shù)進一步分析。如果分析在我們所確認的范圍內(nèi),我們就認為該人就是我們所要找的。然后從庫存中提取出該人相關(guān)的信息,并顯示出來。如果庫存中沒有,則給出提示是否對存庫作為樣本。系統(tǒng)詳細設(shè)計系統(tǒng)整體設(shè)計流程圖11、啟動本系統(tǒng),進入人臉識別系統(tǒng)界面。2、點擊攝像鍵,然后進行拍照,并將圖像顯示并保存。1、對圖片進行光線補償、將圖片變成灰色、實現(xiàn)圖片對比度增強,二值化變換等一系列預(yù)處理。2、將處理好的人臉圖片進行定位,標出眼睛、鼻尖和嘴巴。3、對定位好的人臉圖片進行特征提取操作。1、識別出圖片上的人。2、結(jié)束退出輸出輸入輸入圖像處理詳細設(shè)計圖像點運算是一種既簡單又重要的技術(shù),它能讓用戶改變圖像數(shù)據(jù)占據(jù)的灰度范圍,一幅輸入圖像經(jīng)過點運算后將產(chǎn)生一幅新的輸出圖像,由輸入像素點的灰度值決定相應(yīng)的輸出像素點的灰度值,點運算與局部運算的差別在于:后者每個輸出像素的灰度值由對應(yīng)輸入像素的一個領(lǐng)域內(nèi)幾個像素的灰度值決定。所以,點運算不可以改變圖像內(nèi)的空間關(guān)系。點運算可以按照預(yù)定的方式改變一幅圖的灰度直方圖。除了灰度級的改變是根據(jù)某種特定的灰度變換函數(shù)進行之外,點運算可以看作是"從像素到像素"的復(fù)制操作。如果輸入圖像為A〔x,y,輸出圖像為B〔x,y,則點運算可表示為:B〔x,y=f[A〔x,y]〔式2其中函數(shù)f〔D被稱為灰度變換〔GrayScaleTransformation,GST函數(shù),它描述了輸入灰度值和輸出灰度值之間的轉(zhuǎn)換關(guān)系,一旦灰度變換函數(shù)確定,該點運算就完全被確定下來了。點運算有時又稱為對比度增強、對比度拉伸或灰度變換,它是圖像數(shù)字化軟件和圖像顯示軟件的重要組成部分。下面將對本設(shè)計解決各圖像點處理模塊運用進行到的理論和編程實現(xiàn)進行詳細講述。光線補償〔1算法思想:光線補償?shù)南敕ǖ奶岢鲋饕强紤]到膚色等色彩信息經(jīng)常受到光源顏色、圖像采集設(shè)備的色彩偏差等因素的影響,而在整體上偏離本質(zhì)色彩而向某一方向移動,即我們通常所說的色彩偏冷、偏暖、照片偏黃、便藍等等。這種現(xiàn)象在藝術(shù)照片中更為常見。所以AnilK.Jain等提出,為了抵消這種整個圖像中存在著的色彩偏差,我們將整個圖像中所有像素亮度〔是經(jīng)過了非線形r-校正后的亮度從高到低進行排列,取前5%的像素,如果這些像素的數(shù)目足夠多〔例如,大于100,我們就將它們的亮度作為"參考白"〔ReferenceWhite,也即將它們的色彩的R、G、B分量值都調(diào)整為255。整幅圖像的其他像素點的色彩值也都按這一調(diào)整尺度進行交換。〔2具體實現(xiàn)光線補償功能:明白了光線補償這功能的算法及思想,就可以編碼實現(xiàn)其功能了,實現(xiàn)過程如下:①、編輯菜單IDR_MAINFRAM,先在其中添加一菜單項,將其命名為"預(yù)處理",并在其屬性欄中將其設(shè)為"彈出"菜單,點擊預(yù)處理該菜單項將會彈出一個新的子菜單,此時把該子菜單命名為"光線補償",并把其ID設(shè)為ID_READY_LIGHTINGCONPENSATE,對應(yīng)文件FaceDetectView.Cpp中的函數(shù)ReadyLightingconpensate<>實現(xiàn),并在voidCFaceDetectView::OnReadyLightingconpensate<>中添加如下代碼:hDIBTemp=gDib.CopyHandle<hDIB>;gDib.LightingCompensate<hDIB>;GlobalUnlock<hDIB>;Invalidate<>;光線補償功能實質(zhì)上是用上段代碼中的LightingCompensate〔函數(shù)來進行實現(xiàn)。函數(shù)LightingCompensate〔是類DIB的一個成員函數(shù)。其核心代碼如下所述: //下面的循環(huán)對圖像進行光線補償for<i=0;i<height;i++> for<intj=0;j<width;j++> { //獲取像素偏移 lOffset=this->PixelOffset<i,j,wBytesPerLine>; //得到藍色分量 *<lpData+lOffset>=colorb; //綠色分量 colorb=*<lpData+lOffset+1>; colorb*=co; if<colorb>255> colorb=255; *<lpData+lOffset+1>=colorb; //紅色分量 colorb=*<lpData+lOffset+2>; colorb*=co; if<colorb>255> colorb=255; *<lpData+lOffset+2>=colorb;}②光線補償?shù)男Ч麍D如下所示:圖4-1原圖圖4-2光線補償效果圖2、圖像灰度化〔1算法思想①彩色轉(zhuǎn)換成灰度將彩色圖像轉(zhuǎn)化為灰階圖像常采用如下的經(jīng)驗式:gray=0.39×R+0.50×G+0.11×B〔式3其中,gray為灰度值,R、G、B分別為紅色、綠色和藍色分量值。②灰度比例變換灰度比例變換是把原像素的灰度乘以一個縮放因子,并最后截至[0,255]。③灰度線性變換當圖像由于成像時曝光不足或曝光過度,會產(chǎn)生對比度不足的弊病,從而使圖像中的細節(jié)分辨不清。將圖像灰度進行線性擴展,常能顯著地改善圖像的外觀。灰度線性變換的計算式為:g=〔式4f,其他式中,f是原像素的灰度,g為變換后的灰度。該變換把屬于[a,b]的灰度級變換至灰度區(qū)間[c,d],而沒有在[a,b]區(qū)間的原像素灰度將保持不變。這里a,b,c,d,f,g均為[0,255]之間的整數(shù)值??梢?a被映射為c,b被映射為d。④灰度線性截斷灰度線性截斷的思想是:如果原像素的灰度小于a,則該像素的灰度等于c;如果原像素的灰度大于b,則該像素的灰度等于d?!?具體實現(xiàn)灰度化功能在明白了灰度化的原理之后,就可進行編碼來實現(xiàn)該功能。①編輯菜單IDR_MAINFRAM,先在其中添加一菜單項,將其命名為"圖像灰度化",并將其ID號設(shè)為ID_READY_SCALE,對應(yīng)文件FaceDetectView.Cpp中的函數(shù)ReadyLightingconpensate<>實現(xiàn).②現(xiàn)該模塊的核心代碼如下:獲取藍色分量ColorB=*<lpData+lOffset>;獲取綠色分量 ColorG=*<lpData+lOffset+1>;獲取紅色分量 ColorR=*<lpData+lOffset+2>;計算灰度值 gray=<ColorG*50+ColorR*39+ColorB*11>/100; 顯示灰度圖像 *<lpData+lOffset>=gray; *<lpData+lOffset+1>=gray; *<lpData+lOffset+2>=gray;其中l(wèi)pData是圖片數(shù)據(jù)區(qū),lOffset是圖片像素的偏移,gray是圖像的灰度值③圖像灰度化效果圖:圖4-3圖像灰度化效果圖3、高斯平滑〔1算法思想在介紹高斯平滑前,先介紹模板操作。模板操作是數(shù)字圖像處理中經(jīng)常用到的一種運算方法,圖像的平滑、銳化以及細化、邊緣檢測都要用到模板操作通常的處理是:將中心點周圍八個點的像素值乘于各自矩陣相應(yīng)的系數(shù)后相加得到一個值,然后將這個值乘上中心點的系數(shù),中心點的像素值賦為得到的最后值。一般來說,不同的噪聲有各自針對性的卷積算法。本文使用的卷積算法是高斯卷積核,亦即上面卷積核的LP3。高斯卷積是通過采樣2維高斯函數(shù)得到的。高斯平滑算法的優(yōu)點是平滑后圖像的失真少,算法更具備通用性,能去除不同的噪聲干擾。需要注意的是:在平滑處理時,圖像邊界點無法處理,因此循環(huán)范圍應(yīng)設(shè)定在圖像邊界內(nèi)?!?具體實現(xiàn)高斯平滑功能知道高斯平滑原理之后,可進行編碼將其實現(xiàn):編輯菜單IDR_MAINFRAM,在菜單"預(yù)處理"中添加一子菜單項,命名為"高斯平滑"并將其ID設(shè)為ID_READY_Template。在類CFaceDetectView中添加"高斯平滑"菜單項的事件處理程序,其代碼如下://進行模板操作Template<tem,3,3,xishu>;Invalidate<TRUE>;其中tem是模板參數(shù),xishu是模板系數(shù);Template〔函數(shù)是實現(xiàn)高斯平滑的主要函數(shù),其核心代碼是:for<m=i-<<tem_h-1>/2>;m<=i+<<tem_h-1>/2>;m++>{ for<n=j-<<tem_w-1>/2>;n<=j+<<tem_w-1>/2>;n++>注:將以點〔i,j為中心,與模板大小相同的范圍內(nèi)的象素與模板對用位置的系數(shù)進行相乘并線形疊加sum+=Gray[m][n]*tem[<m-i+<<tem_h-1>/2>>*tem_w+n-j+<<tem_w-1>/2>];} 將結(jié)果乘上總的模板系數(shù)sum=<int>sum*xishu; 計算絕對值sum=fabs<sum>; 如果小于0,強制賦值為0if<sum<0>sum=0; 如果大于255,強制賦值為255if<sum>255>sum=255;HeightTemplate[i][j]=sum;高斯平滑效果圖:見下圖4-4圖4-4高斯平滑效果圖灰度均衡〔1算法思想灰度均衡也稱直方圖均衡,目的是通過點運算使輸入轉(zhuǎn)換為在每一灰度級上都有相同的像素點數(shù)的輸出圖像〔即輸出的直方圖是平的。這對于在進行圖像比較或分割之前將圖像轉(zhuǎn)化為一級的格式是十分有效的。按照圖像的概率密度函數(shù)〔PDF,歸一化帶單位面積的直方圖的定義:P〔x=*H〔x〔式5其中H〔x為直方圖,A0為圖像的面積,設(shè)轉(zhuǎn)換前圖像的概率密度函數(shù)為 Pr〔r,轉(zhuǎn)換后圖像的概率密度函數(shù)為Ps〔S,轉(zhuǎn)換函數(shù)為s=f〔r,由概率論知識,我們可以得到:Ps〔S=Pr〔r*〔式6這樣,如果想使轉(zhuǎn)換后圖像的概率密度函數(shù)為1〔即直方圖是平的則必須滿足:Pr〔r=〔式4-5等式兩邊積分,得:S=f〔r=P2〔udu=H〔udu<式7>該轉(zhuǎn)換式被稱為圖像的累積分布函數(shù)上面的式是被歸一化后推導(dǎo)的對于沒有歸一化的情況,只要求以最大的灰度值〔DMax,對于灰度圖就是255即可,灰度均衡的轉(zhuǎn)換式為:DB=f〔DA=H〔udu〔式1對于離散圖像轉(zhuǎn)換式為:DB=f〔DA=〔式8式中Hi為第i級灰度的像素個數(shù)。〔2編程實現(xiàn)在灰度均衡操作同樣不需要改變DIB的調(diào)色板和文件夾,只要把指向DIB像素起始位置的指針和DIB高度、寬度信息傳遞給子函數(shù)就可以完成灰度均衡變換工作,其核心代碼如下:*<lpData+lOffset>=state;//顯示灰度均衡*<lpData+lOffset+1>=state;*<lpData+lOffset+2>=state;〔3效果圖圖4-5灰度均衡效果圖圖像對比度增強算法思想:在對圖像均衡直方圖處理以后,便可對圖像進行對比度增強,進一步拉開對比度。它通過對圖像的灰度值進行統(tǒng)計,對于比最小設(shè)定值小的則認為是有關(guān)的信息,則將它作為黑色處理,比最大設(shè)定值大的則認為是一些無關(guān)的信息,將它們?nèi)サ?而處于兩者之間的,則進行對比度增強,將他們在總的灰度值里面的比例作為新的像素信息保存起來。這個工作的主要目的是將圖像的特征一步一步顯現(xiàn)出來?!?編碼實現(xiàn):①編輯菜單IDR_MAINFRAM,在菜單"預(yù)處理"中添加一子菜單項,命名為"實現(xiàn)圖像對比度增強",并將其ID設(shè)為ID_READY_ContrastEnhance。類CFaceDetectView中添加"實現(xiàn)圖像對比度增強"菜單項的事件處理程序,其代碼如下;lOffset=gDib.PixelOffset<i,j,gwBytesPerLine>;獲取圖像灰度增強函數(shù)intstate=IncreaseContrast<ZFT[k][k1],100>;顯示灰度增強后的圖像*<lpData+lOffset>=state;*<lpData+lOffset+1>=state;*<lpData+lOffset+2>=state;其中IncreaseContras〔函數(shù)是實現(xiàn)圖像對比度增強的關(guān)鍵函數(shù),該根據(jù)參數(shù)n來調(diào)節(jié)對比度,n越大,對比越強烈,其核心是:如果數(shù)據(jù)很小,設(shè)置為0if<pByte<=Low>return0; 獲得中間數(shù)據(jù),并進行對比增強處理elseif<<Low<pByte>&&<pByte<High>>returnint<<<pByte-Low>/Grad>>; 如果數(shù)據(jù)很大,設(shè)置為255else return255;效果圖編程時的問題解決光線補償由于要改變每一個像素的亮度,開始,我通過對數(shù)幅圖像使用一個固定的值進行測試,得到的效果都滿理想,但是當對更多的圖像處理時,該固定值就出現(xiàn)了明顯的不足,最后不得不采用全局統(tǒng)計的方法,才能得到比較理想的效果。高斯平滑高斯平滑用于消除圖片噪音,為了實現(xiàn)此功能,我們使用了模板操作,因此模板參數(shù)的選擇是最重要的。高斯平滑效果的好壞取決與模板參數(shù)。在編程的時候,試探性的進行參數(shù)的選擇,然后進行比較,看那組參數(shù)可以達到最好的效果。模板參數(shù)是原先采用了1/91/91/91/91/91/91/91/91/9形式,但是,得到的效果卻是令人失望。后來又用了1/101/101/101/101/51/101/101/101/10形式,但是,結(jié)果仍然是未能達到預(yù)期的效果。直到最后采用的1/162/161/162/164/162/161/162/161/16形式,才得到了比較合理的效果。均衡直方圖開始時,圖像的會度一直都處于很散的狀態(tài),而且圖像的特征不明顯,原本想經(jīng)過高斯平滑后進行灰度變換,但是并未能成功。經(jīng)過了一翻苦戰(zhàn),最終找到均衡直方圖的辦法,經(jīng)過多次嘗試,效果一直處于比較理想的狀態(tài)。測試測試是為了找出程序的錯誤。正如測試的規(guī)則所確定的一樣:測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;成功的測試是發(fā)現(xiàn)了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。測試方案的選擇原則應(yīng)當把"盡早地和不斷地進行軟件測試"作為軟件開發(fā)者的座右銘。測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果兩部分組成。程序員應(yīng)避免檢查自己的程序。〔注意不是指對程序的調(diào)試在設(shè)計測試

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論