基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)_第1頁
基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)_第2頁
基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)_第3頁
基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)_第4頁
基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

*******************實踐教學(xué)*******************蘭州理工大學(xué)計算機(jī)與通信學(xué)院2023年春季學(xué)期軟件工程開發(fā)綜合訓(xùn)練課程設(shè)計題目:基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)專業(yè)班級:計算機(jī)科學(xué)與技術(shù)13級4班姓名:喬琪學(xué)號:13240408指導(dǎo)教師:曹來成成績:目錄TOC\o"1-3"\h\z摘要11.問題描述21.1問題背景21.2設(shè)計要求21.3面部感知系統(tǒng)的重要內(nèi)容22.系統(tǒng)設(shè)計32.1各功能模塊說明32.2總體結(jié)構(gòu)設(shè)計42.3圖像預(yù)處理的層次圖53.系統(tǒng)測試53.1測試的目的53.2測試原那么63.3測試方案73.4測試結(jié)果73.5測試總結(jié)10參考文獻(xiàn)11總結(jié)12附錄〔程序源代碼〕13摘要圖像拼接(imagemosaic)技術(shù)是將一組相互間重疊局部的圖像序列進(jìn)行空間匹配對準(zhǔn),經(jīng)重采樣合成后形成一幅包含各圖像序列信息的寬視角場景的、完整的、高清晰的新圖像的技術(shù)。圖像拼接在攝影測量學(xué)、計算機(jī)視覺、遙感圖像處理、醫(yī)學(xué)圖像分析、計算機(jī)圖形學(xué)等領(lǐng)域有著廣泛的應(yīng)用價值。一般來說,圖像拼接的過程由圖像獲取,圖像配準(zhǔn),圖像合成三步驟組成,其中圖像配準(zhǔn)是整個圖像拼接的根底。本文研究了兩種圖像配準(zhǔn)算法:基于特征和基于變換域的圖像配準(zhǔn)算法。在基于特征的配準(zhǔn)算法的根底上,提出一種穩(wěn)健的基于特征點的配準(zhǔn)算法。首先改良Harris角點檢測算法,有效提高所提取特征點的速度和精度。然后利用相似測度NCC(normalizedcrosscorrelation——歸一化互相關(guān)),通過用雙向最大相關(guān)系數(shù)匹配的方法提取出初始特征點對,用隨機(jī)采樣法RANSAC(RandomSampleConsensus)剔除偽特征點對,實現(xiàn)特征點對的精確匹配。最后用正確的特征點匹配對實現(xiàn)圖像的配準(zhǔn)。本文提出的算法適應(yīng)性較強(qiáng),在重復(fù)性紋理、旋轉(zhuǎn)角度比擬大等較難自動匹配場合下仍可以準(zhǔn)確實現(xiàn)圖像配準(zhǔn)。關(guān)鍵詞:圖像拼接圖像配準(zhǔn)圖像融合全景圖問題描述1.1問題背景:隨著平安入口控制和金融貿(mào)易方面應(yīng)用需要的快速增長,生物統(tǒng)計識別技術(shù)得到了新的重視。目前,微電子和視覺系統(tǒng)方面取得的新進(jìn)展,使該領(lǐng)域中高性能自動識別技術(shù)的實現(xiàn)代價降低到了可以接受的程度。而人臉識別是所有的生物識別方法中應(yīng)用最廣泛的技術(shù)之一,人臉識別技術(shù)是一項近年來興起的,但不大為人所知的新技術(shù)。人們更多的是在電影中看到這種技術(shù)的神奇應(yīng)用:警察將偷拍到的嫌疑犯的臉部照片,輸入到電腦中,與警方數(shù)據(jù)庫中的資料進(jìn)行比對,并找出該嫌犯的詳細(xì)資料和犯罪記錄。這并非虛構(gòu)的情節(jié)。在國外,人臉識別技術(shù)早已被大量使用在國家重要部門以及軍警等安防部門。在國內(nèi),對于人臉識別技術(shù)的研究始于上世紀(jì)90年代,目前主要應(yīng)用在公安、金融、網(wǎng)絡(luò)平安、物業(yè)管理以及考勤等領(lǐng)域。1.2設(shè)計要求:本設(shè)計要求學(xué)生開發(fā)一個基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng),可以實現(xiàn)在一張有多張人臉的圖像中檢測出人臉,并統(tǒng)計出圖像中的人數(shù)〔允許有誤差〕。該系統(tǒng)的主要關(guān)鍵技術(shù)問題是人臉檢測算法。=1\*romani、要求開發(fā)出一個可獨立運行的基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)。整個系統(tǒng)由圖像預(yù)處理、人臉檢測、人數(shù)統(tǒng)計及結(jié)果輸出等模塊組成;=2\*romanii、首先要對人臉/非人臉圖像進(jìn)行預(yù)處理,預(yù)處理的步驟包括:對圖像進(jìn)行灰度化、直方圖均衡化、中值濾波等操作;=3\*romaniii、其次要選擇、實現(xiàn)一種人臉檢測算法〔例如:基于AdaBoost的人臉檢測算法〕,人臉檢測準(zhǔn)確率應(yīng)超過80%。=4\*romaniv、系統(tǒng)的開發(fā)可以采用C++或Matlab編程語言來實現(xiàn);=5\*romanv、要求設(shè)計的基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng)可獨立運行,具有良好的用戶交互界面、易操作性和可靠性等。1.3面部感知系統(tǒng)的重要內(nèi)容基于視覺通道信息的面部感知系統(tǒng),包括人臉檢測和跟蹤、面部特征定位、面部識別、人臉歸類〔年齡、種族、性別等的判別〕、表情識別、唇讀等分系統(tǒng),如圖1-1所式,可以看出,繼人臉檢測和跟追之后,面部特征定位通常是面部感知的一個必備環(huán)節(jié),是后續(xù)工作的根底,具有重要的意義。盡管人臉識別不能說是其他面部感知模塊的必備功能,但是,可以肯定的是,利用的身份信息,結(jié)合特定人的先驗知識,可以提高表情分析、唇讀和語音識別、手勢識別乃至手寫體識別的可靠性。而計算機(jī)對使用者身份確認(rèn)的最直接的應(yīng)用就是基于特定使用者的環(huán)境設(shè)置:如使用者的個性化工作環(huán)境,信息的共享和隱私保護(hù)等等。系統(tǒng)設(shè)計該人臉檢測系統(tǒng)主要有五個局部構(gòu)成:圖像獲取功能、圖像預(yù)處理功能、人臉定位功能、特征提取功能、識別功能。2.1各功能模塊說明=1\*romani、圖像獲取功能:該模塊主要是從攝像頭拍照后進(jìn)行獲取圖片,也可以從圖片庫中獲取,獲取后的圖片可以在軟件的界面中顯示出來以便進(jìn)行識別。=2\*romanii、圖像預(yù)處理功能:該模塊主要包括圖像光線補(bǔ)償、圖像變成灰色、高斯平滑、均衡直方圖、實現(xiàn)圖像比照度增強(qiáng)、二值化變換等。=3\*romaniii、人臉定位功能:人臉定位是將典型的臉部特征〔如眼睛,鼻尖,嘴唇等等〕標(biāo)記出來,在本系統(tǒng)中,定位的特征是眼睛,鼻尖和嘴巴三個。由于眼睛具有對稱性,因此可以很快就能標(biāo)記出來,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛標(biāo)記好,鼻子和嘴巴也能相應(yīng)的標(biāo)記出來。=4\*romaniv、特征提取功能:特征提取按以下4個步驟進(jìn)行:〔1〕、提取兩只眼睛的距離〔2〕、眼睛的傾角度〔3〕、眼睛、嘴巴的重心〔4〕、用一個矩形標(biāo)出每一個特征=5\*romanv、識別功能:該模塊通過與庫存中的特征向量進(jìn)行比擬,找出與特征最相近的參數(shù),再對該參數(shù)進(jìn)一步分析。如果分析在我們所確認(rèn)的范圍內(nèi),我們就認(rèn)為該人就是我們所要找的。然后從庫存中提取出該人相關(guān)的信息,并顯示出來。如果庫存中沒有,那么給出提示是否對存庫作為樣本。2.2總體結(jié)構(gòu)設(shè)計該應(yīng)用程序的總體結(jié)構(gòu)設(shè)計流程圖如圖2-1所示:用用戶從“文件從“文件〞菜單中選擇“翻開〞選項在彈出的“在彈出的“翻開〞對話框中選擇要翻開的位圖,點擊“確定〞,應(yīng)用程序顯示所要翻開的位圖獲取臉部區(qū)域獲取特征參數(shù)人臉定位識別圖像預(yù)處理獲取臉部區(qū)域獲取特征參數(shù)人臉定位識別圖像預(yù)處理顯示識別結(jié)果顯示識別結(jié)果圖2—1總體結(jié)構(gòu)設(shè)計流程圖2.3圖像預(yù)處理的層次圖如圖2-2所示:預(yù)處理預(yù)處理光線補(bǔ)償圖像灰度化高斯平滑均衡直方圖圖像比照度增強(qiáng)二值化圖2-2預(yù)處理的層次圖系統(tǒng)測試3.1測試的目的:簡單地說,就是替用戶受過,測試的最終目的是確保最終交給用戶的產(chǎn)品的功能符合用戶的需求,把盡可能多的問題在產(chǎn)品交給用戶之前發(fā)現(xiàn)并改正。具體地講,測試一般要到達(dá)以下目標(biāo):=1\*romani、確保產(chǎn)品完成了它所承諾或公布的功能,并且所有用戶可以訪問到的功能都有明確的書面說明在某種意義上與ISO9001是同一種思想。產(chǎn)品缺少明確的書面文檔,是廠商一種短期行為的表現(xiàn),也是一種不負(fù)責(zé)任的表現(xiàn)。所謂短期行為,是指缺少明確的書面文檔既不利于產(chǎn)品最后的順利交付,容易與用戶發(fā)生矛盾,影響廠商的聲譽(yù)和將來與用戶的合作關(guān)系;同時也不利于產(chǎn)品的后期維護(hù),也使廠商支出超額的用戶培訓(xùn)和技術(shù)支持費用。從長期利益看,這是很不劃算的。領(lǐng)測認(rèn)為接觸過的軟件產(chǎn)品,很少有向方正這樣大大的產(chǎn)品、薄薄的文檔。當(dāng)然,書面文檔的編寫和維護(hù)工作對于使用快速原型法(RAD)開發(fā)的工程是最為重要的、最為困難,也是最容易被忽略的。最后,書面文檔的不健全甚至不正確,也是測試工作中遇到的最大和最頭痛的問題,它的直接后果是測試效率低下、測試目標(biāo)不明確、測試范圍不充分,從而導(dǎo)致最終測試的作用不能充分發(fā)揮、測試效果不理想。=2\*romanii、確保產(chǎn)品滿足性能和效率的要求使用起來系統(tǒng)運行效率低(性能低)、或用戶界面不友好、用戶操作不方便(效率低)的產(chǎn)品不能說是一個有競爭力的產(chǎn)品。用戶最關(guān)心的不是你的技術(shù)有多先進(jìn)、功能有多強(qiáng)大,而是他能從這些技術(shù)、這些功能中得到多少好處。也就是說,用戶關(guān)心的是他能從中取出多少,而不是你已經(jīng)放進(jìn)去多少。=3\*romaniii、確保產(chǎn)品是健壯的和適應(yīng)用戶環(huán)境的健壯性即穩(wěn)定性,是產(chǎn)品質(zhì)量的根本要求,尤其對于一個用于事務(wù)關(guān)鍵或時間關(guān)鍵的工作環(huán)境中。另外就是不能假設(shè)用戶的環(huán)境(某些工程可能除外),如:報業(yè)用戶許多配置是比擬低的,而且是和某些第三方產(chǎn)品同時使用的。通過導(dǎo)入圖片,檢測人數(shù)統(tǒng)計的速度以及準(zhǔn)確程度,分別導(dǎo)入一張、兩張、三張、四張、五張以及14張人臉的圖片,檢測程序的正確率。3.2測試原那么:=1\*romani、應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測試〞作為軟件開發(fā)者的座右銘。=2\*romanii、測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果兩局部組成。=3\*romaniii、在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。不合理的輸入條件是指異常的,臨界的,可能引起問題異變的輸入條件。=4\*romaniv、充分注意測試中的群集現(xiàn)象。經(jīng)驗說明,測試后程序殘存的錯誤數(shù)目與該程序中以發(fā)現(xiàn)的錯誤數(shù)目或檢錯率成正比。應(yīng)該對錯誤群集的程序段進(jìn)行重點測試。=5\*romanv、嚴(yán)格執(zhí)行測試方案,排除測試的隨意性。測試方案應(yīng)包括:所測軟件的功能輸入和輸出,測試內(nèi)容,各項測試的進(jìn)度安排,資源要求,測試資料,測試工具,測試用例的選擇,測試的控制方法和過程,系統(tǒng)的組裝方式,跟蹤規(guī)那么,調(diào)試規(guī)那么,以及回歸測試的規(guī)定等等以及評價標(biāo)準(zhǔn)。=6\*romanvi、應(yīng)當(dāng)對每一個測試結(jié)果做全面的檢查。=7\*romanvii、妥善保存測試方案,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。3.3測試方案:本系統(tǒng)主要由圖像處理、人臉定位、特征提取、識別四個局部組成,而圖像處理對于后面的工作結(jié)果好壞起著至關(guān)重要的作用,因此從軟件開發(fā)的最初階段我們就要對軟件進(jìn)行不斷的測試,對圖像處理模塊中的各個子模塊進(jìn)行測試以便檢測經(jīng)過處理后的圖像效果是否到達(dá)預(yù)期的效果。3.4測試結(jié)果:=1\*romani、主界面:圖4—1在運行程序的主界面有兩個菜單項選擇項,分別是菜單和操作。菜單下包含從圖片統(tǒng)計和退出功能,從圖片統(tǒng)計即導(dǎo)入圖片,還有操作選項里面包含識別,點擊“識別〞一次即加載圖片,點擊第二次即識別圖片。=2\*romanii、導(dǎo)入圖片界面:圖4—2圖4—3上面兩張圖分別是導(dǎo)入圖片過程中要求選擇圖片的路徑,下面從文件夾導(dǎo)入一張圖片。圖4—4點擊“識別〞,將會進(jìn)行加載圖片,加載完成之后會有提示,再次點擊“識別〞,將會識別出如下的結(jié)果。圖4—5正確的識別出圖片中總共有14個人,但是在有些情況下也會出現(xiàn)錯誤,你如下面的情況:圖4—6明明是兩個人,但是識別出來的卻是三個人。但是在整個測試過程中能滿足80%的情況下是正確的。3.5測試總結(jié):在人臉檢測測試的整個人過程中,隨機(jī)導(dǎo)入圖片,測試結(jié)果顯示,當(dāng)導(dǎo)入的圖圖尺寸過大或者人臉亮度較暗時,識別圖片時可能會出錯,究其原因,可能是在設(shè)計的過程中沒有添加曝光增亮環(huán)節(jié),還有本設(shè)計支持的圖片格式為jpg??傮w來說,實現(xiàn)了一個基于人臉檢測技術(shù)的人數(shù)統(tǒng)計系統(tǒng),可以實現(xiàn)在一張有多張人臉的圖像中檢測出人臉,并統(tǒng)計出圖像中的人數(shù)〔允許有誤差〕。該系統(tǒng)的主要關(guān)鍵技術(shù)問題是人臉檢測算法。=1\*romani、整個系統(tǒng)由圖像預(yù)處理、人臉檢測、人數(shù)統(tǒng)計及結(jié)果輸出等模塊組成;=2\*romanii、預(yù)處理的步驟包括:對圖像進(jìn)行灰度化、直方圖均衡化、中值濾波等操作;=3\*romaniii、實現(xiàn)了基于AdaBoost的人臉檢測算法,人臉檢測準(zhǔn)確率應(yīng)超過80%。=4\*romaniv、系統(tǒng)的開發(fā)采用JAVA編程語言來實現(xiàn);在eclipse中集成了WindowBuilder,以及使用了opencv2.4.9。=5\*romanv、具有良好的用戶交互界面、易操作性和可靠性等。參考文獻(xiàn)1.侯戩,通用車牌定位系統(tǒng)的研究與實現(xiàn)[D].華南理工大學(xué),2023.2.王永杰,

裴明濤,

賈云得.多信息融合的快速車牌定位[J].中國圖像圖形學(xué)報,2023,33.山世光.面部特征檢測與識別的研究與實現(xiàn).哈爾濱工業(yè)大學(xué),1999,74.蔣遂平.人臉識別技術(shù)及應(yīng)用簡介.中國計算機(jī)世界出版社,2003,125.徐慧.java數(shù)字圖像實用工程案例精選.人民郵電出版社,2004,36.徐慧.java數(shù)字圖像模式識別技術(shù)及工程實踐.北京:人民郵電出版社,2004,37.胡迎春等.人臉圖像特征點眼睛的定位與提取.柳州:廣西工學(xué)院學(xué)報,2003,38.周長發(fā).精通java圖像處理編程.北京:電子工業(yè)出版社,2004,109.張宏林.java數(shù)字圖像模式識別技術(shù)及工程實踐.北京:人民郵電出版社,2003,410.何斌等.java數(shù)字圖像處理.北京:人民郵電出版社,2001,411.黃維通,姚瑞霞.Vc++6.0程序設(shè)計教程.北京:機(jī)械工業(yè)出版社,2003,4安鵬.Vc++6.0程序設(shè)計導(dǎo)學(xué).北京:清華大學(xué)出版社,2003,613.張威等.java程序設(shè)計技巧與實例.北京:中國鐵道出版社,2003,314.黃維通姚瑞霞著.visualC++程序設(shè)計教程.北京:機(jī)械工業(yè)出版社,2004,1總結(jié)在這幾周的課設(shè)里,面對著諸多的問題和考驗,我一次又一次享受了難題解決前的困惑和難題解決后的興奮。雖然本次設(shè)計的成品還存在著一些問題,但是,對于作者來說,卻是不小的收獲。經(jīng)過幾周的課程設(shè)計,對我各方面的影響都很大,對此我體會頗多:1、在設(shè)計的過程中,每一個步驟都十分的重要。設(shè)計前,一定要將需求分析工作做透徹,這直接關(guān)系到系統(tǒng)開發(fā)實現(xiàn)的難易程度和設(shè)計的進(jìn)度。這就要求我們經(jīng)常與指導(dǎo)老師和用戶交流信息,即使發(fā)現(xiàn)設(shè)計方向上的錯誤。千萬不要認(rèn)為分析工作可有可無,分析做得好,實現(xiàn)起來時就相當(dāng)輕松。就像設(shè)計數(shù)據(jù)庫系統(tǒng),建表工作是最重要的一樣。一旦我們將內(nèi)容和設(shè)計思想確定下來以后,不要輕易改動。確實要改,必須征求指導(dǎo)老師的意見。一般,指導(dǎo)老師豐富的經(jīng)驗將給我們極大的幫助。2、熟悉軟件開發(fā)工具,如eclipse、opencv、WindowBuilder插件等。這個只要通過動手熟悉就可以了,以前的學(xué)習(xí)方法是看書看書再看書,上機(jī)操作的時間很少,過后就忘了。經(jīng)過這次設(shè)計,讓我清楚的感覺到開發(fā)工具的學(xué)習(xí)是要邊看書邊動手才學(xué)得快、學(xué)得牢。3、要經(jīng)常與其他人交流,能獲得許多有用的信息。不要怕將自己的作品演示給別人看,別人會幫助你檢查出許多你意想不到的錯誤,開闊你的思路,檢驗?zāi)愕脑O(shè)計思想,提出很多有用的建議。這些建議往往是非常及時的,是你少走彎路,提高開發(fā)效率。只有集思廣益,善于借鑒,才能在最短的時間內(nèi)完成最多的工作。本次課程設(shè)計是針對我們本學(xué)期來所學(xué)知識而進(jìn)行的一次全面性的檢驗,它涵蓋的知識面廣,涉及到多個領(lǐng)域,需要我們具有較高的綜合知識水平及較強(qiáng)的解決問題的能力。通過這次設(shè)計,一方面讓我更進(jìn)一步的熟悉和掌握了Java語言的根本語法以及更深入的了解了算法和eclipse開發(fā)工具的使用。另一方面在動手能力上有了很大的提高,以前學(xué)的知識只是“知識〞,而現(xiàn)在是將“知識〞轉(zhuǎn)化成自身的本領(lǐng),全面提高了自身解決具體問題的能力。附錄〔程序源代碼〕主界面程序:packageyl.facerec;importorg.opencv.core.Core;importorg.opencv.core.Mat;importorg.opencv.core.MatOfRect;importorg.opencv.core.Point;importorg.opencv.core.Rect;importorg.opencv.core.Scalar;importorg.opencv.highgui.Highgui;importorg.opencv.objdetect.CascadeClassifier;publicclassDetectFace{ privateMatimage; publicintrunDetectFace(){ CascadeClassifierfaceDetector=newCascadeClassifier("./xml/lbpcascade_frontalface.xml"); image=Highgui.imread(MainWindow.getPhotoPath()); System.out.println(MainWindow.getPhotoPath()); MatOfRectfaceDetections=newMatOfRect(); faceDetector.detectMultiScale(image,faceDetections); for(Rectrect:faceDetections.toArray()){ Core.rectangle(image,newPoint(rect.x,rect.y),newPoint(rect.x+rect.width,rect.y +rect.height),newScalar(0,255,0)); } Highgui.imwrite("tmp/tmp.jpg",image); returnfaceDetections.toArray().length; }}基于人臉檢測的程序:packageyl.facerec;importjava.awt.BorderLayout;importjava.awt.EventQueue;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.File;importjavax.swing.ImageIcon;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JSplitPane;importjavax.swing.SwingConstants;publicclassMainWindow{privateJFrameframe;privateJMenuItemmenuItem_Recognize;privateJMenumenuEdit;privateJMenumenu_File;privateJMenuItemmenuItem_FromPicture;privateJMenuItemmenuItem_Exit;privateintcountOfPeople,detectCount=0;privateDetectFacedetectFace;privatestaticStringphotoPath;privateJSplitPanesplitPane_FaceRecognition;privateJScrollPanescrollPane_DisplayPicture_Left;privateJScrollPanescrollPane_DisplayPicture_Right;privatestaticJLabellabel_DisplayPicture_Left;privatestaticJLabellabel_DisplayPicture_Right;privateJPanelpanelSoounth;publicstaticvoidmain(String[]args){ EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{MainWindowwindow=newMainWindow(); window.frame.setVisible(true); }catch(Exceptione){ e.printStackTrace(); } } }); }publicMainWindow(){ detectFace=newDetectFace(); initialize(); }privatevoidinitialize(){ frame=newJFrame(); frame.setTitle("基于人臉檢測的人數(shù)統(tǒng)計系統(tǒng)"); frame.setBounds(200,100,800,600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // JMenuBarmenuBar_MainWindow=newJMenuBar(); frame.setJMenuBar(menuBar_MainWindow); // menu_File=newJMenu("菜單"); menu_File.setFont(newFont("微軟雅黑",Font.PLAIN,14)); menuBar_MainWindow.add(menu_File); // menuItem_FromPicture=newJMenuItem("從圖片統(tǒng)計"); menuItem_FromPicture.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ System.loadLibrary("opencv_java249"); JOptionPane.showMessageDialog(frame,"請翻開一張圖片!"); JFileChooserchooser=newJFileChooser("./test/");intresult=chooser.showOpenDialog(frame);if(result==JFileChooser.APPROVE_OPTION){label_DisplayPicture_Right.setIcon(null);photoPath=chooser.getSelectedFile().getAbsolutePath(); System.out.println(photoPath);label_DisplayPicture_Left.setIcon(newImageIcon(photoPath)); } } }); menuItem_FromPicture.setFont(newFont("微軟雅黑",Font.PLAIN,14)); menu_File.add(menuItem_FromPicture); // menuItem_Exit=newJMenuItem("退出"); menuItem_Exit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ System.exit(0); } }); menuItem_Exit.setFont(newFont("微軟雅黑",Font.PLAIN,14)); menu_File.add(menuItem_Exit); // menuEdit=newJMenu("操作"); menuEdit.setFont(newFont("微軟雅黑",Font.PLAIN,14)); menuBar_MainWindow.add(menuEdit); // menuItem_Recognize=newJMenuItem("識別"); menuItem_Recognize.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(isNull()){if(detectCount==0){ JOptionPane.showMessageDialog(frame,"正在加載圖片,請稍后。。。"); detectFace.runDetectFace(); detectCount++;try{ Thread.sleep(500); }catch(InterruptedExceptione1){ e1.printStackTrace(); } JOptionPane.showMessageDialog(frame,"加載圖片完畢,請點擊“識別〞按鈕進(jìn)行識別!"); }else{newFile("tmp/tmp.jpg").delete(); countOfPeople=detectFace.runDetectFace();label_DisplayPicture_Right.setIcon(newImageIcon("tmp/tmp.jpg")); JOptionPane.showMessageDialog(frame,"該圖片中共有"+countOfPeople+"個人!"); detectCount=0; } }else{ JOptionPane.showMessageDialog(frame,"請加載圖片后再操作!"); } } }); menuItem_Recognize.setFont(newFont("微軟雅黑",Font.PLAIN,14)); menuEdit.add(menuItem_Recognize); // splitPane_FaceRecognition=newJSplitPane(); frame.getContentPane().add(splitPane_FaceRecognition,BorderLayout.CENTER); // scrollPane_DisplayPicture_Left=newJScrollPane(); splitPane_FaceRecognition.setLeftComponent(scrollPane_DisplayPicture_Left); //label_DisplayPicture_Left=newJLabel("");label_DisplayPicture_Left.setHorizontalTextPosition(SwingConstants.CENTER);label_DisplayPicture_Left.setHorizontalAlignment(SwingConstants.CENTER); scrollPane_DisplayPicture_Left.setViewportView(label_DisplayPicture_Left); // scrollPane_DisplayPicture_Right=newJScrollPane(); splitPane_FaceRecognition.setRightComponent(scrollPane_DisplayPicture_Right); //label_DisplayPicture_Right=newJLabel("");label_DisplayPicture_Right.setHorizontalTextPosition(SwingConstants.CENTER);label_DisplayPicture_Right.setHorizontalAlignment(SwingConstants.CENTER); scrollPane_DisplayPicture_Right.setViewportView(label_DisplayPicture_Right); splitPane_FaceRecognition.setDividerLocation(300); }publicbooleanisNull(){if(photoPath!=null){returntrue; }else{returnfalse; } }publicJFramegetFrame(){returnframe; }publicvoidsetFrame(JFrameframe){this.frame=frame; }publicJMenuItemgetMenuItem_Recognize(){returnmenuItem_Recognize; }publicvoidsetMenuItem_Recognize(JMenuItemmenuItem_Recognize){this.menuItem_Recognize=menuItem_Recognize; }publicJMenugetMenuEdit(){returnmenuEdit; }publicvoidsetMenuEdit(JMenumenuEdit){this.menuEdit=menuEdit; }publicJMenugetMenu_File(){returnmenu_File; }publicvoidsetMenu_File(JMenumenu_File){this.menu_File=menu_File; }publicJMenuItemgetMenuItem_FromPicture(){returnmenuItem_FromPicture; }publicvoidsetMenuItem_FromPicture(JMenuItemmenuItem_FromPicture){this.menuItem_FromPicture=menuItem_FromPicture; }publicJMenuItemgetMenuItem_Exit(){returnmenuItem_Exit; }publicvoidsetMenuItem_Exit(JMenuItemmenuItem_Exit){this.menuItem_Exit=menuItem_Exit; }publicintgetCountOfPeople(){returncountOfPeople; }publicvoidsetCountOfPeople(intcountOfPeople){this.countOfPeople=countOfPeople; }publicintgetDetectCount(){returndetectCount; }publicvoidsetDetectCount(intdetectCount){this.detectCount=detectCount; }publicDetectF

溫馨提示

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

評論

0/150

提交評論