ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:453.61KB ,
资源ID:20340138      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20340138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图像处理课程设计Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图像处理课程设计Word下载.docx

1、00分12时:00分 星期二 8时: 星期三 8时:30分12时:星期四 14时:00分18时:星期五 14时: 第 20 周 星期一 8时:附:课程设计报告装订顺序:封面、任务书、目录、正文、评分表、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。一、课题的主要功能

2、1、图像获取功能: 该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来。2、图像预处理功能: 该模块主要包括图像光线补偿、图像变成灰色、高斯平滑、均衡直方图、实现图像对比度增强、二值化变换等。3、人脸定位功能: 该模块主要是将处理后的人脸图片进行定位,将眼睛、鼻子、嘴巴标记出来,以便进行特征提取。4、特征提取功能: 该模块是在定位后的人脸图片中将眼睛、鼻子、嘴巴的特征值提取出来。2、课题的功能模块的划分 一、功能模块流程图 图 2.1二、各模块的功能1、图像获取模块该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在

3、软件的界面中显示出来以便进行识别。2、人脸区域获取 该系统中图像里人脸区域的获取,主要是根据肤色来进行获取,通过肤色非线形分段色彩变换来实现。这一非线性分段色彩变换得到的肤色模型属于色彩空间中的聚类模型,这一类肤色模型的建立首先要选取一种合适的色彩空间。3、图像预处理模块图像预处理就是对获取得来的图像进行适当的处理,使它具有的特征能够在图像中明显的表现出来。该模块中的子模块有如下5个,下面对它们进行概述: 光线补偿3因为系统得到的图片可能会存在光线不平衡的情况,这会影响我们对特征的提取,同时系统中要用到YcrCB色彩空间,所以有必要对图像进行光线补偿。尽可能将它的特征在图像中表现出来。YcrC

4、B是一种色彩空间,它用于视频系统中,在该色彩空间中,Y分量表示像素的亮度,Cr表示红色分量,Cb表示蓝色分量,通常把Cr和Cb称为色度。YcrCB色彩空间是以演播室质量标准为目标的CC601编码方案中采用的彩色表示模型。灰度变化4图像灰度化的过程就是把彩色图像转换为黑白色图像的过程,它也是为了将图像的信息更加具体、简单的表现出来,但是,这样做也将会丢失图像信息。因此,尽可能在转化的过程中用简单的方式表现图像复杂的信息。高斯平滑处理5高斯平滑将对图像进行平滑处理,在图像采集过程中,由于各种因素的影响,图像往往会出现一些不规则的噪声,入图像在传输、存储等都有可能产生数据的丢失。从而影响图像的质量。

5、处理噪声的过程称为平滑。平滑可以降低图像的视觉噪声,同时出去图像中的高频部分后,那些本来不明显的低频成分更容易识别。平滑可以通过卷积来实现。经过卷积平滑后的水平投影后,二值化提供了较好的图像效果。对比度增强6对比度增强,就是对图像的进一步处理,将对比度再一次拉开。它针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。通过改变选用的增强函数的解析表达式就可以得到不同的处理效果。二值化7二值化的目的是将采集获得的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。二值化就是通过一些算法,通过一个阈值

6、改变图像中的像素颜色,令整幅图像画面内仅有黑白二值,该图像一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,“1”表示黑色,“0”表示白色,当然也可以倒过来表示,这种图像称之为二值图像。这便有利于我们对特征的提取。该设计中采用组内方差和组外方差来实现二值化。直方图均衡8直方图均衡化的目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它的处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,它的研究思路是:通过直方图变换式来进行直方图的均衡处理,直方图变换式是但是直方图均衡化存在着两个缺点: 1)变换后图像的灰度级减少,某些细节消失; 2)

7、某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。4、人脸定位模块 人脸定位是将典型的脸部特征(如眼睛,鼻尖,嘴唇等等)标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。由于眼睛具有对称性,因此可以很快就能标记出来,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。5、特征提取模块特征提取按以下4个步骤进行:(1)、提取两只眼睛的距离(2)、眼睛的倾角度(3)、眼睛、嘴巴的重心(4)、用一个矩形标出每一个特征在特征提取完之后将会得到相应的特征值以便存入后台数据库。三、主要功能的实现1、Gabor变换人脸提取特征的流程图 图3.12、功能的实现

8、1、光线补偿光线补偿功能实质上是用上段代码中的LightingCompensate()函数来进行实现。函数LightingCompensate()是类DIB的一个成员函数。其核心代码如下所述: /下面的循环对图像进行光线补偿 for(i =0;iheight;i+) for(int j=0;jPixelOffset(i,j,wBytesPerLine); /得到蓝色分量 *(lpData+lOffset) = colorb; /绿色分量 colorb = *(lpData+lOffset+1); colorb *=co; if(colorb 255) colorb = 255; *(lpDat

9、a+lOffset+1) = colorb; /红色分量 colorb = *(lpData+lOffset+2); *(lpData+lOffset+2) = colorb; 2、图像灰度化 彩色转换成灰度 将彩色图像转化为灰阶图像常采用如下的经验式: gray0.39R0.50G0.11B(式3)其中,gray为灰度值,R、G、B分别为红色、绿色和蓝色分量值。 灰度比例变换灰度比例变换是把原像素的灰度乘以一个缩放因子,并最后截至0,255。 灰度线性变换当图像由于成像时曝光不足或曝光过度,会产生对比度不足的弊病,从而使图像中的细节分辨不清。将图像灰度进行线性扩展,常能显著地改善图像的外观。

10、3、高斯平滑1 在类CFaceDetectView中添加“高斯平滑”菜单项的事件处理程序,其代码如下: Template(tem ,3,3, xishu); Invalidate(TRUE);其中tem是模板参数,xishu是模板系数;Template()函数是实现高斯平滑的主要函数,其核心代码是: for(m=i-(tem_h-1)/2);m=i+(tem_h-1)/2);m+) for(n=j-(tem_w-1)/2);n=j+(tem_w-1)/2);n+) 注: 将以点(i,j)为中心,与模板大小相同的范围内的象素与模板对用位置的系数进行相乘并线形叠加 sum+=Graymn* tem

11、(m-i+(tem_h-1)/2)*tem_w+n-j+(tem_w-1)/2); 将结果乘上总的模板系数 sum=(int)sum*xishu; 计算绝对值 sum = fabs(sum); 如果小于0,强制赋值为0 if(sum sum=255; HeightTemplateij = sum;4、灰度均衡在灰度均衡操作同样不需要改变DIB的调色板和文件夹,只要把指向DIB像素起始位置的指针和DIB高度、宽度信息传递给子函数就可以完成灰度均衡变换工作,其核心代码如下:*(lpData + lOffset)=state ; /显示灰度均衡*(lpData + lOffset+1)=state

12、;*(lpData + lOffset+2)=state ;5、图像对比度增强类CFaceDetectView中添加“实现图像对比度增强”菜单项的事件处理程序,其代码如下;lOffset = gDib.PixelOffset(i, j, gwBytesPerLine);获取图像灰度增强函数int state=IncreaseContrast(ZFTkk1, 100);显示灰度增强后的图像*(lpData + lOffset ) = state ; *(lpData + lOffset+1) = state ;*(lpData + lOffset+2) = state ;其中IncreaseCo

13、ntras()函数是实现图像对比度增强的关键函数,该根据参数n来调节对比度,n越大,对比越强烈,其核心是:如果数据很小,设置为0if(pByte=Low) return 0; 获得中间数据,并进行对比增强处理 else if (LowpByte)&(pByteright-x-left)#define RECTHEIGHT(x) (x-bottom-x-top)#define THRESHOLDCONTRAST 40#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;#define new DEBUG_NEW#endif#defin

14、e PI 3.1415926extern int locax,locay;#define m_WIDTH 600#define m_HEIGHT 600HDIB DIB:ReadDIBFile(HANDLE hFile) BITMAPFILEHEADER bmfHeader; DWORD dwBitsSize; HANDLE hDIB; HANDLE hDIBtmp; LPBITMAPINFOHEADER lpbi; DWORD dwRead; /得到文件大小 dwBitsSize = GetFileSize(hFile,NULL); hDIB = GlobalAlloc(GMEM_MOVEA

15、BLE,(DWORD)(sizeof(BITMAPINFOHEADER); if(!hDIB) return NULL; lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB);lpbi) GlobalFree(hDIB); ReadFile(hFile,(LPBYTE)&bmfHeader,sizeof(BITMAPFILEHEADER),&dwRead,NULL) goto ErrExit; if(sizeof(BITMAPFILEHEADER)!=dwRead)/读取文件出错 if(bmfHeader.bfType != 0x4d42)/文件类型不匹配Re

16、adFile(hFile,(LPBYTE)lpbi,sizeof(BITMAPINFOHEADER),& if(sizeof(BITMAPINFOHEADER)!= dwRead)/读取数据出错 GlobalUnlock(hDIB); if(lpbi-biSizeImage=0) lpbi-biSizeImage = (this-BytePerLine(hDIB)*lpbi-biHeight; hDIBtmp = GlobalReAlloc(hDIB,lpbi-biSize+lpbi-biSizeImage,0);hDIBtmp) goto ErrExitNoUnlock; hDIB = hD

17、IBtmp; /根据情况设定文件指针 if(bmfHeader.bfOffBits != 0L) SetFilePointer(hFile,bmfHeader.bfOffBits,NULL,FILE_BEGIN); /读取文件的象素颜色数据 if(ReadFile(hFile,(LPBYTE)lpbi+lpbi-biSize,lpbi-biSizeImage,& goto OKExit; ErrExit: GlobalUnlock(hDIB); ErrExitNoUnlock: /释放内存 OKExit: return hDIB;ToGray(HANDLE hDIB) HDIB hNewDIB

18、 = NULL; LPBITMAPINFOHEADER lpSrc,lpDest; LPBYTE lpS,lpD; DWORD dwBytesPerLine; DWORD dwImgSize; WORD wBytesPerLine; unsigned i ,j,height,width; lpSrc = (LPBITMAPINFOHEADER)GlobalLock(hDIB); dwBytesPerLine = WIDTHBYTES(24*(lpSrc-biWidth); dwImgSize = lpSrc-biHeight * dwBytesPerLine; /申请新的内存,大小等于原来图象

19、的大小 hNewDIB = GlobalAlloc(GHND,sizeof(BITMAPINFOHEADER)+dwImgSize); lpDest = (LPBITMAPINFOHEADER)GlobalLock(hNewDIB); /保存图片的长宽、颜色深度等信息 memcpy(void*)lpDest,(void*)lpSrc,sizeof(BITMAPINFOHEADER); DWORD dwSBytesPerLine; dwSBytesPerLine = (24*(lpSrc-biWidth)+31)/32*4; height = lpDest- width = lpDest-biW

20、idth; lpS = (LPBYTE)lpSrc; wBytesPerLine = this-BytePerLine(hDIB); lpD = (LPBYTE)lpDest; lpS = lpS + sizeof(BITMAPINFOHEADER); lpD = lpD + sizeof(BITMAPINFOHEADER); unsigned r , g ,b,gray ; /扫描整个图片,实现灰度化 for(i = 0 ; i+) for(j = 0 ;(unsigned )lpDest- /获得原来图片的颜色值 r = *(lpS+); g = *(lpS+); b = *(lpS+);

21、 /计算灰度值 gray = (g*50+r*39+b*11)/100; /保存灰度值到目标图片 *(lpD+)=gray; *(lpD+) = gray; /处理四字节对齐问题 unsigned k ; for(k=0;kbiWidth*3;k+) lpS+; lpD+; GlobalUnlock(hNewDIB); return hNewDIB;void DIB:FaceLocate(HANDLE hDIB, CRect faceLocation10, int &faceNum) HANDLE hDIBTemp; /保存当前数据 hDIBTemp = this-CopyHandle(hDIB); LPBYTE lpData; int height; int width; long lOffset; /得到图象的基本信息 height = lpbi- width = lpbi- lpD

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1