手機(jī)照相對戰(zhàn)嵌入式課程設(shè)計(jì)報告_第1頁
手機(jī)照相對戰(zhàn)嵌入式課程設(shè)計(jì)報告_第2頁
手機(jī)照相對戰(zhàn)嵌入式課程設(shè)計(jì)報告_第3頁
手機(jī)照相對戰(zhàn)嵌入式課程設(shè)計(jì)報告_第4頁
手機(jī)照相對戰(zhàn)嵌入式課程設(shè)計(jì)報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科學(xué)生課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目嵌入式系統(tǒng)課程設(shè)計(jì)學(xué)院計(jì)算機(jī)學(xué)院專業(yè)計(jì)算機(jī)網(wǎng)絡(luò)工程年級2008已知參數(shù)和設(shè)計(jì)要求:1、 通過嵌入式系統(tǒng)課程設(shè)計(jì),了解使用底層api訪問手機(jī)硬件及手機(jī)上的各種傳感器。2、 掌握獲取手機(jī)上電話、短信、攝像頭等各種功能的編寫。.3、 掌握利用android平臺人臉識別功能的使用。要求每組學(xué)生(3-4人/組)設(shè)計(jì)一套android手機(jī)對戰(zhàn)游戲。游戲進(jìn)行時,通過使用手機(jī)攝像頭拍照捕捉人臉,記錄成功捕捉并識別人臉的次數(shù)。要求學(xué)生獨(dú)立完成系統(tǒng)的功能設(shè)計(jì)和實(shí)現(xiàn),使所實(shí)現(xiàn)的系統(tǒng)可以能夠包含主要的內(nèi)容要求,并要求學(xué)生必須在報告中明確具體分工情況。學(xué)生應(yīng)完成的工作:分組 3-4人/

2、組。語言:java。 內(nèi)容:android手機(jī)對戰(zhàn)游戲開發(fā)。包括但不限于:1) 使用android手機(jī)平臺攝像頭功能的實(shí)現(xiàn);2) 使用android平臺人臉識別功能的實(shí)現(xiàn);目前資料收集情況(含指定參考資料):1) android應(yīng)用開發(fā)揭秘 楊豐盛 機(jī)械工業(yè)出版社 2010年3月2) android核心技術(shù)與實(shí)例詳解 吳亞峰 電子工業(yè)出版社 2010年10月課程設(shè)計(jì)的工作計(jì)劃:1需求分析(說明系統(tǒng)目的,要求,操作流程,開發(fā)工具與開發(fā)平臺)2總體設(shè)計(jì)(描述系統(tǒng)功能,系統(tǒng)架構(gòu),模塊化分)3詳細(xì)設(shè)計(jì)(建立系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),協(xié)議結(jié)構(gòu),數(shù)據(jù)流程圖)4系統(tǒng)實(shí)現(xiàn)編碼(用所選開發(fā)工具完成應(yīng)用系統(tǒng))課程設(shè)計(jì)任務(wù)分

3、工:李?。喝四樧R別函數(shù)(該函數(shù)并非調(diào)用,是自己原創(chuàng))黃進(jìn):手機(jī)攝像功能調(diào)用,設(shè)計(jì)報告王博君:sd卡文件操作,設(shè)計(jì)報告任務(wù)下達(dá)日期 2011 年 6 月 20 日完成日期 2011 年 6 月 24 日指導(dǎo)教師 (簽名)學(xué) 生 李健,黃進(jìn),王博君 說明:1、學(xué)院、專業(yè)、年級均填全稱,如:光電工程學(xué)院、測控技術(shù)、2003。2、本表除簽名外均可采用計(jì)算機(jī)打印。本表不夠,可另附頁,但應(yīng)在頁腳添加頁碼。正文目錄摘要及關(guān)鍵詞61 需求分析7 1.1系統(tǒng)目的7 1.2 系統(tǒng)要求7 1.3操作流程7 1.4 開發(fā)工具與開發(fā)平臺. .82 總體設(shè)計(jì). . . . . . . . . . . . . . . .

4、. . .8 2.1 系統(tǒng)功能描述.8 2.2 系統(tǒng)模塊劃分10 2.3 系統(tǒng)程序流圖103 詳細(xì)設(shè)計(jì)113.1系統(tǒng)數(shù)據(jù)結(jié)構(gòu)11 4系統(tǒng)實(shí)現(xiàn)編碼12 4.1 圖像建模函數(shù).12 4.2 攝像功能函數(shù)調(diào)用.13 5 測試結(jié)果 . . 16 6 實(shí)驗(yàn)總結(jié) . . . 177 參考文獻(xiàn) . . . 17摘要隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)也將獲得廣闊的發(fā)展空間。進(jìn)入20世紀(jì)90年代,嵌入式技術(shù)全面展開,目前已成為通信和消費(fèi)類產(chǎn)品的共同發(fā)展方向。android是基于linux開放性內(nèi)核的操作系統(tǒng),是google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。目前已獲得大部分市場。本次嵌入

5、式課程設(shè)計(jì),要求使用java語言基于android平臺完成一個手機(jī)對戰(zhàn)游戲開發(fā),主要要完成利用攝像頭獲取照片,然后對照片進(jìn)行人臉識別,并統(tǒng)計(jì)識別出的人臉的個數(shù)并通知用戶。通過完成此次課程設(shè)計(jì),我們了解了使用底層api訪問手機(jī)硬件及手機(jī)上的各種傳感器,掌握獲取手機(jī)上電話、短信、攝像頭等各種功能的編寫。同時,我們還自己設(shè)計(jì)了人臉識別函數(shù)以及計(jì)分函數(shù),完成游戲勝負(fù)的判定。整過過程,在eclipse集成開發(fā)環(huán)境中編寫程序代碼,利用android模擬器進(jìn)行調(diào)試測試。關(guān)鍵詞:android 底層api 傳感器 人臉識別 一.需求分析1.1 系統(tǒng)目的本系統(tǒng)要求使用java語言基于android平臺完成一個對

6、戰(zhàn)游戲開發(fā),主要要完成利用攝像頭獲取照片,然后對照片進(jìn)行人臉識別,并統(tǒng)計(jì)識別出的人臉的個數(shù)并通知用戶。1.2 系統(tǒng)要求1. 獲取攝像頭詳細(xì)信息和圖片信息。2. 對圖片信息進(jìn)行人臉識別。3. 如果識別成功則記錄相應(yīng)分?jǐn)?shù),表示“擊中”。4. 游戲結(jié)束根據(jù)分?jǐn)?shù)高低結(jié)算游戲。1.3 操作流程進(jìn)入游戲界面如下:點(diǎn)擊確定,開始攝像頭,轉(zhuǎn)到下一界面:點(diǎn)擊計(jì)算結(jié)果,獲得結(jié)果:1.4 開發(fā)工具與開發(fā)平臺開發(fā)工具:使用eclipse集成開發(fā)環(huán)境,并在其中安裝adt開發(fā)工具。開發(fā)平臺:android開發(fā)平臺。二.總體設(shè)計(jì)2.1 描述系統(tǒng)功能利用手機(jī)的攝像頭,進(jìn)行該多人對戰(zhàn)游戲。玩家利用手機(jī)攝像頭捕捉對方臉部信息,并

7、拍照存檔于sd卡中。照片的文件名以“人臉個數(shù)+當(dāng)前系統(tǒng)時間”進(jìn)行命名,以避免重復(fù)。系統(tǒng)分析照片中捕捉到的人臉個數(shù),調(diào)用相應(yīng)的計(jì)分函數(shù),進(jìn)行計(jì)分統(tǒng)計(jì)。最后通過分?jǐn)?shù)高低,決定玩家的勝負(fù)。系統(tǒng)中設(shè)定的計(jì)分函數(shù)為f(x)=x2 。2.2系統(tǒng)功能模塊劃分拍照對戰(zhàn)游戲拍照照片存儲識別計(jì)分自 動 調(diào) 焦設(shè) 定 拍 照 鍵sd 卡 的 判 定文 件 命 名 規(guī) 則人 臉 識 別計(jì) 分 規(guī) 則 設(shè) 計(jì)人臉識別并計(jì)分顯示是否繼續(xù)開始起始頁拍攝照片sd卡空間判定sd卡是否存在顯示照片等待識別請插入sd卡請刪除一些內(nèi)容返回結(jié)束nynyyn2.3 系統(tǒng)程序流程圖三.詳細(xì)設(shè)計(jì)3.1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)public class

8、gameragame extends activity /* called when the activity is first created. */camera camera; /cameraprivate camerapreview preview; /camera viewprivate date today; /datetime private string filename; / file nameprivate simpledateformat sdf=new simpledateformat(yyyymmddhhmmss);private button surebtn; /su

9、re buttonprivate imageview textview; public class photoview extends activity private static imageswitcher mswitcher;private static button returnbutton;private static button nextbutton;private static button resultbutton;private static list pholist;private string newfilepath=;static list picfiles=new

10、arraylist();private imageview imageview;private imageview imageafter;private static int picid=0;private string path;private bitmap sourcebmp;private byte data;int width;int height;int num;/讀取圖像文件private boolean facemodel(int cr,int cb) final double cx= 114.38; /cb的系數(shù)常量 final double cy=160.02;/cr的系數(shù)常

11、量 final double theta= 2.53;/角度常量 final double ecx=1.60;/x軸線和y軸線的兩個常量 final double ecy=2.41; final double a=25.39;/長軸 final double b=14.03;/短軸 final double judge=0.5;/相似度常量 /計(jì)算得到x軸數(shù)值 double x = math.cos(theta)*(cb-cx)+math.sin(theta)*(cr-cy); /y軸數(shù)值 double y = -math.sin(theta)*(cb -cx)+math.cos(theta)

12、*(cr-cy); /計(jì)算離心率 double temp = math.pow(x-ecx,2)/math.pow(a,2)+math.pow(y-ecy,2)/math.pow(b,2); /如果滿足要求返回真,否則假 if(math.abs(temp-1.0)judge) return true; else return false; 四.系統(tǒng)編碼實(shí)現(xiàn)4.1圖像建模函數(shù)/圖像建模 private bitmap test(bitmap bmp) width=bmp.getwidth(); height=bmp.getheight(); int r,g,b=0; int pixel=new i

13、ntwidth*height; flag=new booleanheightwidth; bmp.getpixels(pixel, 0, width, 0, 0, width, height); for(int i=0;iheight;i+) for(int j=0;jwidth;j+) flagij=false; for(int i=0;iheight;i+) for(int j=0;j16)&0xff; g=(pixeli*width+j8)&0xff; b=pixeli*width+j&0xff; if(r95&g40&b20) if(math.abs(r-g)15|math.abs(r

14、-b)15|math.abs(g-b)15) if(math.abs(r-g)15&rg&rb) flagij=true; for(int i=0;iheight;i+) for(int j=0;jwidth;j+) if(flagij=true) r=g=b=255; else r=g=b=0; pixeli*width+j=0xff000000|(r16)|(g8)|b; bmp.setpixels(pixel, 0,width, 0, 0, width, height); return bmp; 4.2攝像功能函數(shù)調(diào)用class camerapreview extends surface

15、view implements surfaceholder.callback surfaceholder holder;public camerapreview(context context) super(context);/ todo auto-generated constructor stubholder=this.getholder();holder.addcallback(this);holder.settype(surfaceholder.surface_type_push_buffers);overridepublic void surfacechanged(surfaceho

16、lder holder, int format, int width,int height) / todo auto-generated method stubtrycamera.parameters parameters=camera.getparameters();/parameters.setpicturesize(width, height);parameters.setpictureformat(pixelformat.jpeg);if(getwindowmanager().getdefaultdisplay().getorientation()=0)parameters.setpr

17、eviewsize(height,width);待添加的隱藏文字內(nèi)容1elseparameters.setpreviewsize(width, height);parameters.setpicturesize(1024,786);camera.setparameters(parameters);camera.startpreview();camera.autofocus(new autofocuscallback()overridepublic void onautofocus(boolean success, camera camera) / todo auto-generated met

18、hod stubif(success);catch(exception e)overridepublic void surfacecreated(surfaceholder holder) / todo auto-generated method stubcamera=camera.open();trycamera.setpreviewdisplay(holder);catch(ioexception e)camera.release();camera=null;overridepublic void surfacedestroyed(surfaceholder holder) / todo

19、auto-generated method stubcamera.stoppreview();camera.release();camera=null; 4.3 sd卡文件操作private void checkmystorage() if(environment.getexternalstoragestate().equals(environment.media_mounted) if(new file(/sdcard).canread() file file=new file(sdcard/fatalityupload); if(!file.exists() file.mkdir(); f

20、ile=new file(sdcard/fatalityupload/fatality); file.mkdir(); else new alertdialog.builder(this).setmessage(檢查到?jīng)]有存儲卡,請插入手機(jī)存儲卡再開啟本應(yīng)用).setpositivebutton(確定, new dialoginterface.onclicklistener() overridepublic void onclick(dialoginterface dialog, int which) / todo auto-generated method stubfinish();).show(); private static list readfiles(string path)file dir=new file(path);file files=dir.listfiles();if(files!=null)for(in

溫馨提示

  • 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

提交評論