




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学生课程设计任务书课程设计题目嵌入式系统课程设计学院计算机学院专业计算机网络工程年级20XX已知参数和设计要求:1、 通过嵌入式系统课程设计,了解使用底层API访问手机硬件及手机上的各种传感器。2、 掌握获取手机上电话、短信、摄像头等各种功能的编写。.3、 掌握利用Android平台人脸识别功能的使用。要求每组学生(3-4人/组)设计一套Android手机对战游戏。游戏进行时,通过使用手机摄像头拍照捕捉人脸,记录成功捕捉并识别人脸的次数。要求学生独立完成系统的功能设计和实现,使所实现的系统可以能够包含主要的内容要求,并要求学生必须在报告中明确具体分工情况。学生应完成的工作:分组 3-4人/组。语言:JAVA。 内容:Android手机对战游戏开发。包括但不限于:1) 使用Android手机平台摄像头功能的实现;2) 使用Android平台人脸识别功能的实现;目前资料收集情况(含指定参考资料):1) Android应用开发揭秘 杨丰盛 机械工业出版社 20XX年3月2) Android核心技术与实例详解 吴亚峰 电子工业出版社 20XX年10月课程设计的工作计划:1需求分析(说明系统目的,要求,操作流程,开发工具与开发平台)2总体设计(描述系统功能,系统架构,模块化分)3详细设计(建立系统的数据结构,协议结构,数据流程图)4系统实现编码(用所选开发工具完成应用系统)课程设计任务分工:李健:人脸识别函数(该函数并非调用,是自己原创)黄进:手机摄像功能调用,设计报告王博君:SD卡文件操作,设计报告任务下达日期 20XX 年 6 月 20 日完成日期 20XX 年 6 月 24 日指导教师 (签名)学 生 李健,黄进,王博君 说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、20XX。2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。正文目录摘要及关键词61 需求分析7 1.1系统目的7 1.2 系统要求7 1.3操作流程7 1.4 开发工具与开发平台. .82 总体设计. . . . . . . . . . . . . . . . . . .8 2.1 系统功能描述.8 2.2 系统模块划分10 2.3 系统程序流图103 详细设计113.1系统数据结构11 4系统实现编码12 4.1 图像建模函数.12 4.2 摄像功能函数调用.13 5 测试结果 . . 16 6 实验总结 . . . 177 参考文献 . . . 17一.需求分析1.1 系统目的本系统要求使用java语言基于android平台完成一个对战游戏开发,主要要完成利用摄像头获取照片,然后对照片进行人脸识别,并统计识别出的人脸的个数并通知用户。1.2 系统要求1. 获取摄像头详细信息和图片信息。2. 对图片信息进行人脸识别。3. 如果识别成功则记录相应分数,表示“击中”。4. 游戏结束根据分数高低结算游戏。1.3 操作流程进入游戏界面如下:点击确定,开始摄像头,转到下一界面:点击计算结果,获得结果:1.4 开发工具与开发平台开发工具:使用Eclipse集成开发环境,并在其中安装ADT开发工具。开发平台:Android开发平台。二.总体设计2.1 描述系统功能利用手机的摄像头,进行该多人对战游戏。玩家利用手机摄像头捕捉对方脸部信息,并拍照存档于SD卡中。照片的文件名以“人脸个数+当前系统时间”进行命名,以避免重复。系统分析照片中捕捉到的人脸个数,调用相应的计分函数,进行计分统计。最后通过分数高低,决定玩家的胜负。系统中设定的计分函数为f(x)=x2 。2.2系统功能模块划分拍照对战游戏拍照照片存储识别计分自 动 调 焦设 定 拍 照 键SD 卡 的 判 定文 件 命 名 规 则人 脸 识 别计 分 规 则 设 计人脸识别并计分显示是否继续开始起始页拍摄照片SD卡空间判定SD卡是否存在显示照片等待识别请插入SD卡请删除一些内容返回结束NYNYYN2.3 系统程序流程图三.详细设计3.1 系统数据结构public class 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; /sure 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 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的系数常量 final double cy=160.02;/cr的系数常量 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;/相似度常量 /计算得到x轴数值 double x = Math.cos(theta)*(Cb-cx)+Math.sin(theta)*(Cr-cy); /y轴数值 double y = -Math.sin(theta)*(Cb -cx)+Math.cos(theta)*(Cr-cy); /计算离心率 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; 四.系统编码实现4.1图像建模函数/图像建模 private Bitmap test(Bitmap bmp) width=bmp.getWidth(); height=bmp.getHeight(); int r,g,b=0; int pixel=new intwidth*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-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摄像功能函数调用class CameraPreview extends SurfaceView 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(SurfaceHolder 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.setPreviewSize(height,width);elseparameters.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 method 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 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(); file=new File(sdcard/fatalityUpload/fatality); file.mkdir(); else new AlertDialog.Builder(this).setMessage(检查到没有存储卡,请插入手机存储卡再开启本应用).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.li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能仓储机器人协同作业技术创新在仓储物流智能化决策中的应用
- 破冰游戏活动方案
- 美甲美睫年会活动方案
- 江苏省东海县八年级地理上册 3.3 水资源(二)说课稿 (新版)新人教版
- 幼儿园踩踏安全培训课件
- 线路开通活动方案
- 电力专项活动方案
- 链轮制造工安全规范考核试卷及答案
- 电极制造工综合考核试卷及答案
- 普通镗工数字化技能考核试卷及答案
- 2024新人教版英语七年级上单词默写单(小学部分)
- 中医(中西医结合科)工作制度与岗位职责
- 住院精神疾病患者自杀风险护理
- 三年级美术上册全册教案(湘教版)
- 同等学力英语申硕考试词汇(第六版大纲)电子版
- 光伏项目投标方案(技术方案)
- GB/T 44395-2024激光雷达测风数据可靠性评价技术规范
- 公厕保洁服务投标方案
- 模块化炼化设备的设计与集成
- JJF(皖) 174-2024 重点用能单位能源资源计量在线审查规范
- 儿童口腔健康宣教课件
评论
0/150
提交评论