毕业设计方案人脸识别.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 方案 识别
- 资源描述:
-
摘 要 人脸辨认技术(FRT)是当今模式辨认和人工智能领域一种重要研究方向。虽然人脸辨认研究已有很长历史,各种人脸辨认技术也诸多,但由于人脸属于复杂模式并且容易受表情、肤色和衣着影响, 当前还没有一种人脸辨认技术是公认迅速有效.本文重要讨论了人脸辨认技术某些惯用办法,对既有人脸检测与定位、人脸特性提取、人脸辨认办法进行分析和讨论,最后对人脸辨认将来发展和应用做了展望。 核心字:人脸辨认,特性定位,特性提取 ABSTRACT Nowadays the face recognition technology (FRT) is a hot issue in the field of pattern recognition and artificial intelligence.Although this research already has a long history and many different recognition methods are proposed,there is still no effective method with low cost an d high precision.Human face is a complex pattern an d is easily affected by the expression,complexion and clothes.In this paper,some general research are discussed,including methods of face detection and location,features abstraction,and face recognition.Then we analyze and forecast the face recognition’s application and its prospects. Keywords:Face Recognition Technology,Face location,Features abstraction 第1章 绪 论 所谓人脸辨认,是指对输入人脸图像或者视频.判断其中与否存在人脸,如果存在人脸,则进一步给出每张人脸位置、大小和各个重要面部器官位置信息。并且根据这些信息,进一步提取每张人脸蕴含身份特性,并将其与已知人脸库中人脸进行对比,从而辨认每张人脸身份。人脸辨认研究涉及范畴广泛,内容涉及模式辨认、计算机视觉、图像解决、人工智能等方面。人脸辨认还涉及到神经网络等学科, 也和人脑结识限度紧密有关。 这诸多因素使得人脸辨认成为一项极富挑战性课题。 1.1人脸辨认技术研究意义 人脸辨认是机器视觉和模式辨认领域最富有挑战性课题之一,同步也具备较为广泛应用意义。人脸辨认技术是一种非常活跃研究领域,它覆盖了数字图像解决、模式辨认、计算机视觉、神经网络、心理学、生理学、数学等诸多学科内容。如今,虽然在这方面研究已获得了某些可喜成果,但是FRT在实用应用中仍面临着很严峻问题,由于人脸五官分布是非常相似,并且人脸自身又是一种柔性物体,表情、姿态或发型、化妆千变万化都给对的辨认带来了相称大麻烦。如何能对的辨认大量人并满足实时性规定是迫切需要解决问题。 1.2国内外研究现状 人脸辨认系统当前在大多数领域中起到举足轻重作用,特别是用在机关单位安全和考勤、网络安全、银行、海关边检、物业管理、军队安全、智能身份证、智能门禁、司机驾照验证、计算机登录系统。国内在这方面也获得了较好成就,国家863项目“面像检测与辨认核心技术”通过成果鉴定并初步应用,就标志着国内在人脸辨认这一当今热点科研领域掌握了一定核心技术。北京科瑞奇技术开发股份有限公司在开发了一种人脸鉴别系统,对人脸图像进行解决,消除了照相机影响,再对图像进行特性提取和辨认。这对于人脸鉴别特别有价值,由于人脸鉴别普通使用正面照,要鉴别人脸图像是不同步期拍摄,使用照相机不同样。系统可以接受时间间隔较长照片,并能达到较高辨认率,在计算机中库藏2300人正面照片,每人一张照片,使用相距1--7年、差别比较大照片去查询,首选率可以达到50%,前20 张输出照片中包具有与输入照片为同一人照片概率可达70%。 美国陆军实验室也是运用vc++开发,通过软件实现,并且FAR为49%。在美国进行公开测试中,FAR,为53%。美国国防部高档研究项目署,运用半自动和全自动算法。这种算法需要人工或自动指出图像中人两眼中心坐标,然后进行辨认。在机场开展测试中,系统发出错误警报太多,国外某些高校(卡内基梅隆大学(Carnegie Mellon University)为首,麻省理工大学(Massachusetts Institute of Technology )等,英国雷丁大学(University of Reading))和公司(Visionics 公司Facelt 人脸辨认系统、Viiage FaceFINDER 身份验证系统、Lau Tech 公司Hunter系统、德国BioID 系统等)工程研究工作也重要放在公安、刑事方面,在考实验证系统实现方面进一步研究并不多。 1.3本系统研究内容 本系统重要对人脸检测与定位做了进一步研究。在人脸检测某些重要是对图像进行获取和预解决。图像获取重要是获取图像基本信息,以便对图像像素进行解决。预解决涉及对图像灰度化,中值滤波,对比度变化以及边沿提取。人脸预解决过程是计算机人脸辨认中一种重要过程。人脸图像预解决好坏对整个系统至关重要,对人脸预解决研究具备非常重要意义。特性定位是人脸辨认目是拟定单张人脸在图像中位置,它通过标记人脸区域 来拟定和计算人脸各器官定位。人脸特性检测是检测人脸特性有无和位置,例如说眼睛、鼻子、鼻孔、嘴巴、嘴唇等有无和位置。 值得指出是,人脸检测涉及办法种类繁多(据报告可知,用于人脸检测办法有150各种),且涉及知识点较深,并各有特点,因此咱们小组将人脸检测与人脸辨认区别开来,由于后者只是前者一种简朴问题。同步,咱们把注意力集中在人脸检测办法上,而没有实现与数据库中人脸匹配问题。 1.4当前研究中存在问题 虽然人类人脸辨认能力很强,,可以记住并辨别上千张不同人脸,可是计算机则困难多了。其体当前:人脸表情丰富;人脸随年龄增长而变化;人脸所成图像受光照、成像角度及成像距离等影响;并且从二维图象重建三维人脸是病态( ill2po sed) 过程,当前尚没有较好描述人脸三维模型。此外,人脸辨认还涉及到图象解决、计算机视觉、模式辨认以及神经网络等学科,也和人脑结识限度紧密有关。这诸多因素使得人脸辨认成为一项极富挑战性课题。 第2章 系统需求分析 2.1 系统功能需求 系统功能重要环绕人脸检测和人脸特性定位进行设计,一方面该系统会对图像进行人脸检测,人脸检测重要是对图像进行预解决过程,预解决这个模块在整个人脸辨认系统开发过程中占有很重要地位。该系统重要是将解决后人脸图片进行定位,将眼睛、鼻子、嘴巴标记出来。 2.1.1功能划分及描述 图像解决办法诸多,咱们可以依照需要,有选取地使用各种办法。在拟定脸部区域上,普通用法有肤色提取。肤色提取,则对脸部区域获取则比较精确,成功率达到95%以上,并且速度快,减少诸多工作。 图像获取模块: 该模块重要是从图片库中获取图片,获取后图片可以在软件界面中显示出来以便进行辨认。 图像预解决模块: 图像预解决就是对获获得来图像进行恰当解决,使它具备特性可以在图像中明显体现出来。该模块中子模块有如下几种,下面对它们进行概述: 中值滤波:在图像采集过程中,由于各种因素影响,图像中往往会浮现某些不规则随机噪声,如数据在传播、存储时发生数据丢失和损坏等,这些都会影响图像质量,因而需要将图片进行平滑操作以此来消除噪声。 灰度化:图像灰度化过程就是把彩色图像转换为灰度图像过程,彩色图像包括较多人脸特性信息,但是直接作为解决对象会使过程复杂化.相比之下灰度图像在保存了人脸重要特性信息基本上,减少了总信息量。 Sobel提取(边沿提取):采用梯度微分锐化图像,使噪声、条纹等得到增强;对图像中随机噪声也有一定平滑作用;标记人脸边沿,使其边沿显得粗而亮。 对比度增强:对比度增强,就是对图像进一步解决,将对比度再一次拉开。它针对原始图像每一种像素直接对其灰度进行解决,其解决过程重要是通过增强函数对像素灰度级进行运算并将运算成果作为该像素新灰度值来实现。通过变化选用增强函数解析表达式就可以得到不同解决效果。 相似度计算:相似度计算是为了鉴别两对象相似限度而设定算法,例如文字、指纹、人脸等。为了便于二值化阈值拟定,肤色相似度计算意义是通过计算出与人脸肤色相近像素点,拟定人脸区域,用灰度图象显示出来,并为二值化提供一种可计算出阈值比较值。 二值化:通过某些算法,通过一种阈值变化图像中像素颜色,令整幅图像画面内仅有黑白二值,该图像普通由黑色区域和白色区域构成,可以用一种比特表达一种像素,“1”表达黑色,“0”表达白色,以便有助于咱们对特性提取。 直方图:直方图是图象解决中一种十分重要图象分析工具,它描述了一幅图像灰度级内容,任何一幅直方图都包括了丰富信息。从数学上来说图像直方图是图像各个灰度值记录特性与图像灰度值函数,它记录了一幅图像中各个灰度级浮现次数和概率。 2.1.2 开发环境 l 硬件环境 硬件配备原则:具备可靠性,可用性和安全性,具备完善技术支持。可以满足个人学习和设计需要。 运营本软件所需硬件资源:CPU: 800M及以上;内存: 128M及以上 l 软件环境 系统软件配备原则可以满足该软件可靠性,可用性和安全性规定系统软件配备方案 ① 配备有持续工作能力、高稳定性、高度可集成开放式原则操作系统,如Windows,Windows NT,UNIX,Linux等。 ② 配备符合ANSI/ISO原则高档程序设计语言解决软件。如:Visual C++ 6.0。 ③ 熟悉C++高档程序设计语言。 2.1.3 运营环境 (1)硬件环境 CPU:800M以上;内存:128 M及以上。 (2)软件环境 可以运营在微软公司近年来所出各种操作系统。如Windows 98、Windows Me、Windows 、Windows NT等。 2.2 可行性分析 在开发该人脸辨认软件之前,咱们查询了前人所写过诸多论文以及源程序,在开发之时,结合了资料中算法并揉进了自己某些思想,使程序可以对人脸图片进行简易辨认。 2.2.1操作可行性 该人脸辨认软件需要如下运营环境:CPU:800M及以上;内存:128 M及以上。安装有Windows 98、Windows Me、Windows 、Windows NT等操作系统中其中一种。因而,从操作可行性来看,只要系统顾客硬件软件设备满足以上条件,即可用该人脸辨认软件进行人脸辨认。 2.2.2 技术可行性 图像解决办法诸多,咱们可以依照需要,有选取地使用各种办法。在拟定脸部区域上,普通用法有肤色提取。肤色提取,则对脸部区域获取则比较精确,成功率达到95%以上,并且速度快,减少诸多工作。人脸自身变化挑战:同一种人人脸图像由于表情、精神状态、健康状况、姿态、整容、年龄变化、意外损伤、化妆、眼镜帽子、头发胡须等变化而发生巨大变化;外部环境挑战:光照环境条件、摄像设备、人与摄像设备距离角度、图像存储质量等,都会使人脸图像发生教大变化。面队这些就规定咱们进一步研究基于人脸肤色提取算法,提高辨认精度,,提高辨认速度,提高系统合用性。 2.3 预解决方案选取 2.3.1设计方案原则选取 本应用程序设计方案原则如下: ①采用较为先进技术力量,保证应用程序在技术上具备一定优势。 ②采用成熟技术,保证应用程序安全性和可靠性。 ③应用程序便于扩展和维护,易于技术更新。 ④应用程序充分运用既有资源,尽量减少不必要再投资。 ⑤编写代码必要严谨易读,代码解释必要清晰明白,为应用程序再开发提供应尽责任。 2.3.2 图像文献格式选取 图像采集是在Windows操作系统下开发,需要理解在此环境下图像存储、显示等方面机制。在Windows操作系统中,任何图像格式(如.jpeg格式,.gif格式)在系统中显示之前最后必要转化为位图格式。BMP图像文献格式(位图格式)是微软公司为其Windows环境设立原则图像格式,在设计过程中,为了定位和特性提取以便,咱们采用是BMP格式图像。 2.3.3开发工具选取 本次设计所用开发工具是Microsoft Visual C++ 6.0。 Visual C++ 6.0是Microsoft公司推出一种可视化编程工具。它支持多平台和交叉平台开发,将各种编程工具如编辑器、连接器、调试器等巧妙结合在一起,构成一种完美可视化开发环境。顾客无需通过繁杂编程操作,即可完毕Windows下应用程序编辑、编译、测试和细化等工作。 2.3.4算法选取分析 本文重要研究对象是图像预解决模块,该模块分为中值滤波、图像灰度化、相似度计算、二值化每个小模块实现均有许多相应算法。下面将本系统采用算法进行简介: 中值滤波:在图像采集过程中,由于各种因素影响,图像中往往会浮现某些不规则随机噪声,如数据在传播、存储时发生数据丢失和损坏等,这些都会影响图像质量,因而需要将图片进行平滑操作以此来消除噪声。但是如果平滑不当,就会使图像自身细节如边界轮廓、线条等变模糊不清,为了既平滑掉噪声有尽量保持图像细节,本系统采用中值滤波算法解决。 图像灰度化:图像灰度化是将图像变成灰色,本系统中采用加权平均值法来实现图像灰度化,这样可以获得最合理灰度图像。 肤色相似度计算:相似度计算是为了鉴别两对象相似限度而设定算法,例如文字、指纹、人脸等。为了便于二值化阈值拟定,肤色相似度计算意义是通过计算出与人脸肤色相近像素点,拟定人脸区域,用灰度图象显示出来,并为二值化提供一种可计算出阈值比较值。 二值化:通过某些算法,通过一种阈值变化图像中像素颜色,令整幅图像画面内仅有黑白二值,该图像普通由黑色区域和白色区域构成,可以用一种比特表达一种像素,“1”表达黑色,“0”表达白色,以便有助于咱们对特性提取。 第3章 系统概要设计 本章重要简介系统构造设计流程以及系统各模块功能及有关原理。应用程序总体构造设计流程图如图3-1所示: 图3-1总体构造设计流程图 图像预解决层次图如图3-2所示: 图3-2 预解决层次图 人脸定位层次图如图3-3所示: 图3-3 人脸定位层次图 3.1 各模块功能概述 以上是该系统总体构造设计图以及图像预解决模块层次图。下面简介系统中各模块详细功能。 3.1.1图像获取模块 该模块重要是从图片库中获取,获取后图片可以在软件界面中显示出来以便进行辨认。 3.1.2人脸区域获取 该系统中图像里人脸区域获取,重要是依照肤色来进行获取,通过肤色非线形分段色彩变换来实现。这一非线性分段色彩变换得到肤色模型属于色彩空间中聚类模型,这一类肤色模型建立一方面要选用一种适当色彩空间。 3.1.3图像预解决模块 图像预解决就是对获获得来图像进行恰当解决,使它具备特性可以在图像中明显体现出来。该模块中子模块有如下几种,下面对它们进行概述: ★ 中值滤波 中值滤波将对图像进行平滑解决,在图像采集过程中,由于各种因素影响,图像往往会浮现某些不规则噪声,入图像在传播、存储等均有也许产生数据丢失。从而影响图像质量。解决噪声过程称为滤波。滤波可以减少图像视觉噪声。 ★ 灰度化 图像灰度化过程就是把彩色图像转换为灰度图像过程,彩色图像包括较多人脸特性信息,但是直接作为解决对象会使过程复杂化.相比之下灰度图像在保存了人脸重要特性信息基本上,减少了总信息量。 ★ 对比度增强 对比度增强,就是对图像进一步解决,将对比度再一次拉开。使图象原本模糊边沿变得清晰。 ★ Sobel边沿提取 Sobel提取长处:采用梯度微分锐化图像,同样使噪声、条纹等得到增强,Soble算子则在一定限度上克服了这个问题:由于引入了平均因素,因而对图像中随机噪声有一定平滑作用;由于它是相隔两行或两列之差分,故边沿两侧之元素得到了增强,故边沿显得粗而亮。 ★ 相似度计算 相似度计算是为了鉴别两对象相似限度而设定算法,例如文字、指纹、人脸等。为了便于二值化阈值拟定,肤色相似度计算意义是通过计算出与人脸肤色相近像素点,拟定人脸区域,用灰度图象显示出来,并为二值化提供一种可计算出阈值比较值。 ★ 二值化 二值化目是将采集获得多层次灰度图像解决成二值图像,以便于分析理解和辨认并减少计算量。二值化就是通过某些算法,通过一种阈值变化图像中像素颜色,令整幅图像画面内仅有黑白二值,该图像普通由黑色区域和白色区域构成,可以用一种比特表达一种像素,“1”表达黑色,“0”表达白色,固然也可以倒过来表达,这种图像称之为二值图像。这便有助于咱们对特性提取。该设计中采用组内方差和组外方差来实现二值化。 3.1.4图像模块定位 对候选特性进行筛选时,一方面割据颜色信息提出那些伪特性。然后用PCA模板和几何特性拟定眼睛和嘴巴。 ★ 颜色筛选 无论是眼睛还是嘴巴,都位于人脸非肤色区域。并且眼睛颜色是黑暗分明,运用这些懂得可以裁减诸多候选,减少PCA验证承担。 ★ 双眼定位 把筛选过特性区域两两配对,再用PCA模扳进行严整,就可以得到真正双眼 大使,PCA严整有时候难以区别眉毛与眼睛,因此还要用某些几何特性进一步筛选,由于假定姿态是正,双眼必然位于人脸上半某些,她们连线是近似水平,并且她们中心比眉毛低,运用这些判据,可以区别眉毛和眼睛。 ★ 鼻子定位 在拟定了眼睛位置后来,鼻子位置基本拟定,以眼睛瞳距为1来计算,鼻子到两眼中心距离为0.7到1。在这附近搜索颜色较深区域,大体能得到鼻孔位置(有侧面图一种鼻孔基本不可见,也就无法检测出来了)。然后在两鼻孔上访一定范畴内(鼻孔距离1/2左右)找亮度最高点作为鼻尖。 ★ 嘴巴定位 找到双眼之后,可以在它们下方搜索候选特性区域,寻找非肤色面积较大、近似位于双眼对称候选作为嘴巴。然后依照先验知识调节嘴巴大小。 第4章 系统详细设计 本章重要对图像解决这一模块进行详细简介,对其子模块所用到算法及详细实现进行详细讲述。 4.1 系统运营流程图 l 对图片进行光线补偿、将图片变成灰色、实现图片对比度增强,二值化变换等一系列预解决。 l 将解决好人脸图片进行定位,标出眼睛、鼻尖和嘴巴。 Ø 启动本系统,进入人脸辨认系统界面。 Ø 点击打开图象,选用所需要图片 图4-1 系统流程图 4.2 图像解决详细设计 4.2.1图像灰度化 彩色图像包括较多人脸特性信息,但是直接作为解决对象会使过程复杂化。相比之下灰度图像在保存了人脸重要特性信息基本上,减少了总信息量。 (1) 算法思想 灰度化解决办法重要有3种: ① 最大值法:使RGB值等于3值中最大一值,即, 式(4.1) 最大值法会完毕亮度很高灰度。 ② 平均值法:取R,G,B平均值,即, 式(4.2) 平均值法会完毕比较柔和灰度。 ③ 加权平均值法:依照重要性或其她指标给R,G,B赋予不同权值,并使RGB加权值平均,即, 式(4.3) 其中,,分别为R,G,B权值。实验和理论推导证明当 时,即当, 式(4.4) 式(4.5) 时,能得到最合理灰度图像。 (2) 详细实现灰度化功能 ① 在明白了灰度化原理之后,就可进行编码来实现该功能。在编辑界面中添加一种按钮控件,将其命名为‘灰度化’,并其ID号设为IDC_BTHD,相应文献CFaceDetectDlg.Cpp中函数OnBthd()实现. ②现该模块核心代码如下: //编写就算像素点灰度值函数 int CPreProcess::CalGray1(int blue,int green,int red) { //运用灰度计算公式 int ColorGray=(int)((green * 59 + red * 30 + blue * 11) / 100); //将像素值限制在0到255 if (ColorGray<0) { ColorGray=0; } else if (ColorGray>255) { ColorGray=255; } return ColorGray; } //编写OnBtGray()函数 //获取红色分量 int ColorRed=m_tOriPixelArray[i][j].rgbRed; //获取绿色分量 int ColorGreen=m_tOriPixelArray[i][j].rgbGreen; //获取蓝色分量 int ColorBlue=m_tOriPixelArray[i][j].rgbBlue; //调用函数,计算灰度值 int cgray=method3->CalGray1(ColorBlue ,ColorGreen ,ColorRed ) ; //显示灰度图像 m_tResPixelArray[i][j].rgbBlue = m_tResPixelArray[i][j].rgbGreen = m_tResPixelArray[i][j].rgbRed =cgray; //重置位图 MakeBitMap( ); } //method3是定义一种函数指针,定义如下: CPreProcess *method3; //初始化如下 method3 = new CPreProcess(m_tOriPixelArray,m_nWndWidth,m_nWndHeight); ③ 图像灰度化效果: 图4-2 图像灰度化 4.2.2 灰度变换 按照一定规律修改像素灰度值,使图像亮度或者对比度发生变化,使之更易于辨别,达到更好视觉效果。 (1) 详细实现功能 进行编码来实现该功能: 在编辑界面中添加一种滑动条控件和文本编辑器,将其命名为‘灰度化变换’,并其ID号分别设为IDC_SLIDER1,IDC_EDIT1,相应文献CFaceDetectDlg.Cpp中函数OnReleasedcaptureSlider1()和OnChangeEdit1()实现。 打开ClassWizardMember Variables标签,给每个控件添加所需成员变量,参数如下: 表4.1 空间ID号 变量类型 变量名 范畴和大小 IDC_SLIDER1 CSliderCtrl m_Slider ―― IDC_EDIT1 int m_Gray 0~255 在滑动条消息解决函数OnReleasedcaptureSlider1()中设立滑动条值使它等于文本编辑框初始值。代码为: //设立滑动条初始值 m_Slider.SetPos(m_Gray); //刷新界面 UpdateData(true); 在滑动条消息解决函数OnReleasedcaptureSlider1()中进行灰度化变换,将滑动条值赋给灰度,并将其控制在【0,255】之间。代码为: cgray+=m_Gray; if (cgray<0) { cgray=0; } if(cgray>255) { cgray=255; } m_tResPixelArray[i][j].rgbBlue = m_tResPixelArray[i][j].rgbGreen = m_tResPixelArray[i][j].rgbRed =cgray; } } MakeBitMap(); } //重置位图 MakeBitMap();重要代码 { CClientDC ClientDC(pDCShow->GetWindow()); if(m_pResMap!=NULL) delete m_pResMap; m_pResMap=new CBitmap(); m_pResMap->CreateCompatibleBitmap(&ClientDC,m_nWndWidth,m_nWndHeight); CDC dc; dc.CreateCompatibleDC(&ClientDC); dc.SelectObject(m_pResMap); for(int i=0;i<m_nWndHeight;i++) for(int j=0;j<m_nWndWidth;j++) dc.SetPixelV(j,i,RGB(m_tResPixelArray[i][j].rgbRed,m_tResPixelArray[i][j].rgbGreen,m_tResPixelArray[i][j].rgbBlue)); dc.DeleteDC(); MyDraw(); } (2) 效果图 图4-3 比较柔和灰度图像 图4-4 灰度较强图像 4.2.3 sobel边沿提取 图像边沿:是指图像中象素灰度值有阶跃变化或屋顶状变化那些象素集合。图像边沿是一种重要视觉信息,图像边沿检测是图像解决、图像分析、模式辨认、计算机视觉以及人类视觉基本环节。其成果对的性和可靠性将直接影响到机器视觉系统对客观世界理解。实现边沿检测有诸多不同办法,也始终是图像解决中研究热点,人们盼望找到一种抗噪强、定位准、不漏检、不误检检测算法。典型算法[1-2]中重要用梯度算子,最简朴梯度算子是Roberts算子,比较惯用有Prewitt算子和Sobel算子,其中Sobel算子效果较好。 (1) 算法思想 Sobel边沿检测算子使用两个如下有向算子(一种水平,一种是垂直),每一种逼近一种偏导数: 式(4.6) 然后将值赋给待求点灰度值。 (2) 详细实现Sobel功能 一方面对整张图片像素点进行扫描,得到每个像素点R ,G ,B ,然后计算得到这个像素点灰度值, // -1 0 1 // -2 0 2 // -1 0 1 col=temp6 + 2 * temp7 + temp8 - temp1 - 2 * temp2 - temp3; 式(4.7) // -1 -2 1 // 0 0 0 // 1 2 1 row=temp3 + 2 * temp5 + temp8 - temp1 - 2 * temp4 - temp6; 式(4.8) temp=method3->CalSobel(col,row); 式(4.9) //对计算值进行限制 if (temp<0) { temp=0; } if(temp>255) { temp=255; } //重置像素 m_tResPixelArray[i][j].rgbBlue = m_tResPixelArray[i][j].rgbGreen = m_tResPixelArray[i][j].rgbRed =temp; } } MakeBitMap(); } { CClientDC ClientDC(pDCShow->GetWindow()); if(m_pResMap!=NULL) delete m_pResMap; m_pResMap=new CBitmap(); m_pResMap->CreateCompatibleBitmap(&ClientDC,m_nWndWidth,m_nWndHeight); CDC dc; dc.CreateCompatibleDC(&ClientDC); dc.SelectObject(m_pResMap); for(int i=0;i<m_nWndHeight;i++) for(int j=0;j<m_nWndWidth;j++) dc.SetPixelV(j,i,RGB(m_tResPixelArray[i][j].rgbRed,m_tResPixelArray[i][j].rgbGreen,m_tResPixelArray[i][j].rgbBlue)); dc.DeleteDC(); MyDraw(); } (2) 效果图 图4-5 sobel边沿提取 4.2.4 对比度增强 (1)进行编码来实现该功能: 在编辑界面中添加一种滑动条控件和文本编辑器,将其命名为‘灰度化变换’,并其ID号分别设为IDC_SLIDER2,IDC_EDIT2,相应文献CFaceDetectDlg.Cpp中函数OnReleasedcaptureSlider2()和OnChangeEdit2()实现。打开ClassWizardMember Variables标签,给每个控件添加所需成员变量,参数如下: 表4.2 空间ID号 变量类型 变量名 范畴和大小 IDC_SLIDER1 CSliderCtrl m_Slider2 ―― IDC_EDIT1 int m_Degree 0~255 在滑动条消息解决函数OnReleasedcaptureSlider2()中设立滑动条值使它等于文本编辑框初始值。代码为: for (int i=0;i<m_nWndHeight;i++) { for (int j=0;j<m_nWndWidth;j++) { //获取红色分量 int r=m_tResPixelArray[i][j].rgbRed; //获取绿色分量 int g=m_tResPixelArray[i][j].rgbGreen; //获取蓝色分量 int b=m_tResPixelArray[i][j].rgbBlue; //对RGB进行变换 int red=abs((127-r)*m_Degree)/255; int green=abs((127-g)*m_Degree)/255; int blue=abs((127-b)*m_Degree)/255; //使颜色对比度更加明显 if(r>127)r+=red; else r-=red; if (g>127) { g+=green; } else g-=green; if (b>127) { b+=blue; } else b-=blue; if (r > 255) r = 255; if (r < 0) r = 0; if (g > 255) g = 255; if (g < 0) g = 0; if (b > 255) b = 255; if (b < 0) b = 0; m_tResPixelArray[i][j].rgbRed=r; m_tResPixelArray[i][j].rgbGreen=g; m_tResPixelArray[i][j].rgbBlue=b; } } MakeBitMap(); UpdateData(true); (2) 效果图 图4-6 原图像 图4-6 对比度增强后效果图 第5章 系统综合与测试 5.1 系统综合 人脸辨认应用程序采用Visual C++6.0作为开发工具,运用MFC采用面向对象办法,用C++语言编写程序。将面向对象编程技术直接应用于图像解决知识,并按功能进行细化,建立通用类,从而减少了繁琐性,增长代码可重用性和可移植性,提高了效率。本设计中建立多层次类构造都是可以修改和维护。所有类都是开放,可以向其中添加新办法以支持新功能,而不会对原有功能构成任何威胁。本设计中建立多层次类构造都是可以修改和维护。所有类都是开放,可以向其中添加新办法以支持新功能,而不会对原有功能构成任何威胁。 5.2 构造设计 图像预解决设计: 表5.1 函 数 功 能 OnBtGray() 图象灰度化 CalGray1(int,int,int) 计算图象灰度值 OnChangeEdit1( ) 设立滑动条初始值 OnReleasedcaptureSlider( ) 变化灰度变化 MakeBitMap( ) 重置位图 SetRange() 设立滑动条范畴 GetPos( ) 得到滑动条值 SetPos() 设立滑动条值 OnBUTTONSobel( ) 实现Sobel边沿提取 OnCustomdrawSlider1( ) 将滑动条消息映射给文本框 各成员函数解析 函数名称 : OnBtGray 参数 : CSliderCtrl m_Slider ---- 灰度滑动条值 int m_Gray ---- 编辑框值 返回值 : void 阐明 : 该函数将编辑框值映射给滑动条 函数名称 : CalGray1 参数 : int Blue ---- 待求点像素蓝色值 int Green ---- 待求点像素绿色值 int Red ---- 待求点像素红色值 返回值 : int ---- 待求点灰度值 阐明 : 该函数计算某像素点灰度值 函数名称 : OnChangeEdit1 参数 : CSliderCtrl m_Slider ---- 灰度滑动条值 in展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




毕业设计方案人脸识别.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2373490.html