VC++人脸识别系统研究与实现毕业设计(含源文件)(7)

2019-04-02 12:20

函数名称 : MakeBitMap

参数 : 无 返回值 : 无

说明 : 该函数的功能是生成一个新的位图

函数名称 : DrawCross 参数 : pDC-CDC指针

point crColor返回值 说明

函数名称 参数 int m_WndHeight 返回值 说明

4、类DIB 函数名称 参数

-要画的点的坐标

-标记得颜色 : 无

: 该函数用于画十字形标记 : Likehood

: int m_WndWidth ——图片高度 —— 图片宽度

: 无

: 该函数用于计算相似度

表7-4 类Dib的成员 函 数 功 能 CopyHandle() 拷贝内存块 ReadDIBFile () 读取位图文件信息 LightingCompensate进行光线补偿 () PixelOffset () 修正像素值 GetHeight () 获取DIB高度 GetBiBitCount() 获取字节数

各成员函数解析

: CopyHandle

: HANDLE hSrc —— 要拷贝的内存区域

31

返回值 : HANDLE —— 拷贝后的新内存区域

说明 : 该函数拷贝指定的内存区域,返回复制后的新内存区域,出错

时返回NULL

函数名称 : ReadDIBFile

参数 : HANDLE hFile —— 要读取的文件hFile 返回值 : HDIB —— 成功返回DIB的句柄,否则返回NULL 说明

函数名称 参数 WORD wBytePerLine 返回值 说明

函数名称 参数 返回值 说明

函数名称 参数 返回值 说明 : 该函数拷贝指定的内存区域,返回复制后的新内存区域,出错

时返回NULL

: PixelOffset : int i,j

—— 图像每行的字节数 : long —— 图像像素数据的偏移 : 该函数计算图像像素数据的偏移 : GetHeight : 无

: long —— 图片高度 : 该函数返回图像的高度 : GetBitBitCount : 无

: int —— 图片字节数 : 该函数返回图片字节数

32

第六章 测试

测试是为了找出程序的错误。正如测试的规则所确定的一样:测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了迄今为止尚未发现的错误的测试。

第一节 测试的原则

1、应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。

2、测试用例应由测试输入数据和与之对应的预期输出结果两部分组成。 3、程

序员应避免检查自己的程序。(注意不是指对程序的调试)

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

5、充分注意测试中的群集现象。经验表明,测试后程序残存的错误数目与该程序中以发现的错误数目或检错率成正比。应该对错误群集的程序段进行重点测试。 6、严格执行测试计划,排除测试的随意性。测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的组装方式,跟踪规则,调试规则,以及回归测试的规定等等以及评价标准。 7、应当对每一个测试结果做全面的检查。

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

第二节 测试方案

本系统主要由图像处理、人脸定位、特征提取、识别四个部分组成,而图像处理对于后面的工作结果好坏起着至关重要的作用,因此从软件开发的最初阶段我们就要对软件进行不断的测试,对图像处理模块中的各个子模块进行测试以便检测经过处理后的图像效果是否达到预期的效果。下面对图像处理模块的测试过程进行描述:

图像处理模块 :该 模块分为光线补偿、图像变成灰色、均衡直方图、实现图像对比度增强、二值化处理。对该模块进行测试的方法是:采用多张24位的彩色图像来进

33

行逐一测试,看这些图片经过处理后是否达到预期的效果,如光线补偿模块,则检测所测图片的亮度是否变强;图像灰度化模块的检测则需看所测的彩色图片是否变成灰色;高斯平滑的实现采用了模板操作,因此模板参数的选择对其十分重要,先用图片进行测试来检测平滑效果,如果效果不理想则继续选择模板参数,直至效果理想为止;图像对比度增强是为了将图像的特征一步一步显现出来,在测试的过程中,用含人脸的图片进行检测看是否图像的特征显示出来的是否足够明显。

经过测试之后,光线补偿模块将图像的像素亮度增强,并使图片中的光线达到平衡;图像灰度化模块达到了预期的效果,将图片转变为灰色;高斯平滑模块能有效的消除图像噪音,提高了图像质量;而增强图像对比度模块能够较好的把图像特征表现出来。

34

结束语

一 应用程序特点

1、人脸识别应用程序采用Visual C++6.0作为开发工具,利用MFC采用面向对象的方法,用C++语言编写程序。

2、应用程序的的各个类具有相同的编程模式,且都是一次性制作的,代码简洁,编程效率高。

3、将面向对象的编程技术直接应用于图像处理知识,并按功能进行细化,建立通用的类,从而减少了繁琐性,增加代码的可重用性和可移植性,提高了效率。

4、本设计中建立的多层次类结构都是可以修改和维护的。所有的类都是开放的,可以向其中添加新方法以支持新功能,而不会对原有功能构成任何威胁。

5、使用操作界面友好,提示信息清晰,用户操作简便。可以用菜单、对话框选择不同的处理算法。

二 心得体会

在这几个月里,面对着诸多的问题和考验,我一次又一次享受了难题解决前的困惑和难题解决后的兴奋。虽然本次设计的成品还存在着一些问题,但是,对于作者来说,却是不小的收获。还有在编写论文时,由于论文篇幅和时间的因素,有很多需要论述的地方都已经省略,本论文只着重论述各种功能的基本算法,至于基本输入输出并没有包括在内,还有很多地方是一笔带过的,希望读者见谅。

经过几个月的毕业设计,对我各方面的影响都很大,对此我体会颇多:

1、在设计的过程中,每一个步骤都十分的重要。设计前,一定要将需求分析工作做透彻,这直接关系到系统开发实现的难易程度和设计的进度。这就要求我们经常与指导老师和用户交流信息,即使发现设计方向上的错误。千万不要认为分析工作可有可无,分析做得好,实现起来时就相当轻松。就像设计数据库系统,建表工作是最重要的一样。一旦我们将内容和设计思想确定下来以后,不要轻易改动。确实要改,必须征求指导老师的意见。一般,指导老师丰富的经验将给我们极大的帮助。

2、熟悉软件开发工具,如Visual C++ 6.0、DEPHI、PowerBuilder 8.0等。这个只要通过动手熟悉就可以了,以前的学习方法是看书看书再看书,上机操作的时间很少,过后就忘了。经过这次设计,让我清楚的感觉到开发工具的学习是要边看书边动手才学得快、学得牢。

3、要经常与其他人交流,能获得许多有用的信息。不要怕将自己的作品演示给别人看,别人会帮助你检查出许多你意想不到的错误,开阔你的思路,检验你的设计思想,

35


VC++人脸识别系统研究与实现毕业设计(含源文件)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全国计算机的技术与软件专业技术资格水平考试2010年上半年网络地

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

马上注册会员

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