毕业设计+人脸识别完整版(7)

2019-05-26 22:59

2008届计算机科学与技术专业毕业设计(论文)

第5章 系统综合与测试

5.1 系统综合

人脸识别应用程序采用Visual C++6.0作为开发工具,利用MFC采用面向对象的方法,用C++语言编写程序。将面向对象的编程技术直接应用于图像处理知识,并按功能进行细化,建立通用的类,从而减少了繁琐性,增加代码的可重用性和可移植性,提高了效率。本设计中建立的多层次类结构都是可以修改和维护的。所有的类都是开放的,可以向其中添加新方法以支持新功能,而不会对原有功能构成任何威胁。本设计中建立的多层次类结构都是可以修改和维护的。所有的类都是开放的,可以向其中添加新方法以支持新功能,而不会对原有功能构成任何威胁。

5.2 结构设计

图像预处理设计:

表5.1

29

函 数

功 能 图象灰度化 计算图象的灰度值 设置滑动条的初始值 改变灰度变化 重置位图 设置滑动条的范围 得到滑动条的值 设置滑动条的值 实现Sobel边缘提取 将滑动条的消息映射给文本框

OnBtGray() CalGray1(int,int,int) OnChangeEdit1( ) OnReleasedcaptureSlider( ) MakeBitMap( ) SetRange() GetPos( ) SetPos() OnBUTTONSobel( ) OnCustomdrawSlider1( ) 初春岭:人脸面部特征提取技术的研究

各成员函数解析

函数名称 : OnBtGray

参数 : CSliderCtrl m_Slider ---- 灰度滑动条的值 int m_Gray ---- 编辑框的值 返回值 : void

说明 : 该函数将编辑框的值映射给滑动条

函数名称 参数 int Green ---- 返回值 说明

函数名称 参数 int m_Gray ---- 返回值 说明

函数名称 参数 返回值 说明

函数名称 参数 返回值 : CalGray1

: int Blue ---- 待求点像素的蓝色值 待求点像素的绿色值

int Red ---- 待求点像素的红色值

: int ---- 待求点的灰度值 : 该函数计算某像素点的灰度值 : OnChangeEdit1

: CSliderCtrl m_Slider ---- 灰度滑动条的值 编辑框的值 : void

: 该函数将编辑框的值映射给滑动条 : OnReleasedcaptureSlider : void : void

: 该函数将编辑框的值映射给滑动条 : MakeBitMap : void : void

30

2008届计算机科学与技术专业毕业设计(论文)

说明 : 重新设置位图

函数名称 : SetRange

参数 : int nMin ----灰度滑动条的最小值 int nMax----灰度滑动条的最大值 BOOL bRedraw 返回值 : void

说明 : 设置滑动条的最大最小值,确定滑动条的范围

函数名称 : GetPos 参数 : void 返回值 : void

说明 : 得到滑动条的当前值

函数名称 : SetPos

参数 : int nPos ----设置滑动条的值 返回值 : void

说明 : 设置滑动条的值

函数名称 : OnBUTTONSobel 参数 : void 返回值 : void

说明 : 设置滑动条的值

5.3 系统测试

测试是为了找出程序的错误。正如测试的规则所确定的一样:测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了迄今为止尚未发现的错误的测试。本系统主要由图像处理、人脸定位、特征提取组成,而图像处理对于后面的工作结果好坏起着至关重要的作用,因此从软件开发的最初阶段我们就要对软件进行不断的测试,对图像处理模块中的各个子模块进行测试以便检测经过处理后的图像

31

初春岭:人脸面部特征提取技术的研究

效果是否达到预期的效果。下面对图像处理模块的测试过程进行描述: 图像处理模块 :

该模块分为、图像变成灰色、对比度变换、实现图像对比度增强、Sboel边缘提取。对该模块进行测试的方法是:采用多张24位的彩色图像来进行逐一测试,看这些图片经过处理后是否达到预期的效果,如图像灰度化模块的检测则需看所测的彩色图片是否变成灰色;而灰度变换就是为了调试图像最适合的灰度级。图像对比度增强是为了将图像的特征一步一步显现出来,在测试的过程中,用含人脸的图片进行检测看是否图像的特征显示出来的是否足够明显。 5.3.1 测试原则

1、应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 2、测试用例应由测试输入数据和与之对应的预期输出结果两部分组成。 3、程序员应避免检查自己的程序。(注意不是指对程序的调试)

4、在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。不合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件。

5、充分注意测试中的群集现象。经验表明,测试后程序残存的错误数目与该程序中以发现的错误数目或检错率成正比。应该对错误群集的程序段进行重点测试。

6、严格执行测试计划,排除测试的随意性。测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的组装方式,跟踪规则,调试规则,以及回归测试的规定等等以及评价标准。 7、应当对每一个测试结果做全面的检查。

8、妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 知道了测试的目的和测试的原则之后,现在进行软件的具体测试,对软件的功能实现进行详细的测试。

32

2008届计算机科学与技术专业毕业设计(论文)

第6章 总结

经过几个月的毕业设计,对我各方面的影响都很大,对此我体会颇多。虽然这次设计成品还存在着很多问题,但我从中学到了不少知识。在开发过程中遇到的问题不计其数,其中最令人感到头痛的是一些不容易注意到的小错误,例如在编写Sobel边缘提取这个按钮的时候,没有考虑到BMP图片的文件格式,所以编写程序得到的效果一直不能达到预想的效果,后来通过请教我们小组做文件存储这方面的成员才发现了这个错误;开发一个大的系统的时候,不管是个人还是团队,必须作好需求分析,建立好数据库,如果需求分析不成功,那到后面是很难做下去的,本系统的开发就遇到这样的情况,以至做了很多无用功,经常全部从新部署。一个好的需求分析报告将给系统带来很大的惊喜,它会很大程度上减少程序员的负担。

系统完成在后,发现做事情不但要独立自主的完成任务,也要通过周围的朋友或是网络资料库等获取信息,只有大量的使用周围方便的活资源,而不只依赖与书本上的例子,才能得到更大的进步,做起事情来才有事半功倍的效果。

本次毕业设计是针对我们大学四年来所学知识而进行的一次全面性的检验,它涵盖的知识面广,涉及到多个领域,需要我们具有较高的综合知识水平及较强的解决问题的能力。同时也是对我们工作能力,团队合作精神的一次考验。通过这次设计,一方面让我更进一步的熟悉和掌握了C++语言的基本语法以及更深入的了解了算法和Visual C++开发工具的使用。另一方面在动手能力上有了很大的提高,以前学的知识只是“知识”,而现在是将“知识”转化成自身的本领,全面提高了自身解决具体问题的能力。

33


毕业设计+人脸识别完整版(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:常识

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: