基于PCA的人脸识别系统研究毕业设计论文(4)

2019-03-22 13:10

毕业论文 人脸识别系统的研究与实现

内方差和组外方差来实现二值化。

·直方图均衡[8]

直方图均衡化的目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它的处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,它的研究思路是:通过直方图变换式来进行直方

?1?Hf?D??A??图的均衡处理,直方图变换式是 HB?D??'?1f??f?D???但是直方图均衡化存在着两个缺点:

1)变换后图像的灰度级减少,某些细节消失;

2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

人脸定位模块

人脸定位是将典型的脸部特征(如眼睛,鼻尖,嘴唇等等)标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。由于眼睛具有对称性,因此可以很快就能标记出来,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。

特征提取模块

特征提取按以下4个步骤进行: (1)、提取两只眼睛的距离 (2)、眼睛的倾角度 (3)、眼睛、嘴巴的重心 (4)、用一个矩形标出每一个特征

在特征提取完之后将会得到相应的特征值以便存入后台数据库。

识别模块

该模块通过与库存中的特征向量进行比较,找出与特征最相近的参数,再对该参数进一步分析。如果分析在我们所确认的范围内,我们就认为该人就是我们所要找的。然后从库存中提取出该人相关的信息,并显示出来。如果库存中没有,则给出提示是否对存库作为样本。

16

毕业论文 人脸识别系统的研究与实现

第四章 系统的详细设计

本章主要对图像处理这一模块进行详细介绍,对其子模块所用到的算法及具体实现进行详细讲述。

第一节 系统的运行流程图

图6-1 系统的运行流程图

1、对图片进行光线补输出 1、识别出输入 1、启动本系统,进入人脸识别系统界面。 2、点击摄像键,然后进行拍照,并将图像显示并保存。 偿、将图片变成灰色、实现图片对比度增强,二值化变换等一系列预处理。 2、将处理好的人脸图片进行定位,标出眼睛、鼻尖和嘴巴。 3、对定位好的人脸图片进行特征提取操作。 图片上的人。 2、结束退出

第二节 图像处理详细设计

一 位图详细设计

1 设备无关位图(DIB)

VC++没有提供使用十分方便的DIB绘制方法,只好自己去创建一个实用的DIB类了。本系统中建立了一个专门的类DIB来处理设备无关位图,表4-1列出了对位图的操作函数。

17

毕业论文 人脸识别系统的研究与实现

函 数 ClearMemory() CopyHandle() LoadDIB() ReadDIBFile() LightingCompensate() PixelOffset() PaintDIBTrue() GetHeight() GetWidth() GetSize() GetBitCount() GetBiBitCount() 修正像素值 释放内存 拷贝内存块 功 能 加载位图信息 读取位图文件信息 进行光线补偿 绘制DIB对象 获取DIB高度 获取DIB宽度 获取图像数据缓冲区中的字节数 获取颜色位数 获取字节数 GetColorNumber() 获取颜色总数 表6-1 Dib类的部分功能

二 图像点处理详细设计

图像点运算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值,点运算与局部运算的差别在于:后者每个输出像素的灰度值由对应输入像素的一个领域内几个像素的灰度值决定。所以,点运算不可以改变图像内的空间关系。

点运算可以按照预定的方式改变一幅图的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看作是“从像素到像素”的复制操作。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可表示为: B(x,y) = f[A(x,y)] (式2)

其中函数f(D)被称为灰度变换(Gray Scale Transformation ,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系,一旦灰度变换函数确定,该点运算就完全被确定下来了。

点运算有时又称为对比度增强、对比度拉伸或灰度变换,它是图像数字化软件和图像显示软件的重要组成部分。下面将对本设计解决各图像点处理模块运用进行到的理论和编程实现进行详细讲述。

18

毕业论文 人脸识别系统的研究与实现

1、光线补偿

(1)算法思想:

光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖、照片偏黄、便蓝等等。这种现象在艺术照片中更为常见。所以Anil K.Jain等提出,为了抵消这种整个图像中存在着的色彩偏差,我们将整个图像中所有像素亮度(是经过了非线形r-校正后的亮度)从高到低进行排列,取前5%的像素,如果这些像素的数目足够多(例如,大于100),我们就将它们的亮度作为“参考白”(Reference White),也即将它们的色彩的R、G、B分量值都调整为255。整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换。 (2) 具体实现光线补偿功能:

明白了光线补偿这功能的算法及思想,就可以编码实现其功能了,实现过程如下: ①、 编辑菜单IDR_MAINFRAM,先在其中添加一菜单项,将其命名为“预处理”,并在其属性栏中将其设为“弹出”菜单,点击预处理该菜单项将会弹出一个新的子菜单,此时把该子菜单命名为“光线补偿”,并把其ReadyLightingconpensate()

hDIBTemp = gDib.CopyHandle(hDIB); gDib.LightingCompensate(hDIB); GlobalUnlock(hDIB); Invalidate();

光线补偿功能实质上是用上段代码中的LightingCompensate()函数来进行实现。函数LightingCompensate()是类DIB的一个成员函数。其核心代码如下所述:

ID设为

ID_READY_LIGHTINGCONPENSATE,对应文件FaceDetectView.Cpp中的函数

void

CFaceDetectView::

OnReadyLightingconpensate()中添加如下代码:

//下面的循环对图像进行光线补偿 for(i =0;i

for(int j=0;j

//获取像素偏移

lOffset = this->PixelOffset(i,j,wBytesPerLine);

//得到蓝色分量

19

毕业论文 人脸识别系统的研究与实现

}

*(lpData+lOffset) = colorb; //绿色分量

colorb = *(lpData+lOffset+1); colorb *=co; if(colorb >255)

colorb = 255;

*(lpData+lOffset+1) = colorb; //红色分量

colorb = *(lpData+lOffset+2); colorb *=co; if(colorb >255)

colorb = 255;

*(lpData+lOffset+2) = colorb;

② 光线补偿的效果图如下所示 :

图 4-1 原图

20


基于PCA的人脸识别系统研究毕业设计论文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:项目实训-学生信息管理系统

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

马上注册会员

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