以下是网学网为您推荐的VC与C++类别-基于VC人脸识别系统的研究与实现,希望本篇文章对您学习有所帮助。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | ||||||||||||||||||||||||||||
第二节 图像处理详细设计 一 位图详细设计 1 设备无关位图(DIB) VC++没有提供使用十分方便的DIB绘制方法,只好自己去创建一个实用的DIB类了。本系统中建立了一个专门的类DIB来处理设备无关位图,表4-1列出了对位图的操作函数。
表6-1 Dib类的部分功能 二 图像点处理详细设计 图像点运算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值,点运算与局部运算的差别在于:后者每个输出像素的灰度值由对应输入像素的一个领域内几个像素的灰度值决定。所以,点运算不可以改变图像内的空间关系。 点运算可以按照预定的方式改变一幅图的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看作是“从像素到像素”的复制操作。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可表示为: B(x,y) = f[A(x,y)] (式2) 其中函数f(D)被称为灰度变换(Gray Scale Transformation ,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系,一旦灰度变换函数确定,该点运算就完全被确定下来了。 点运算有时又称为对比度增强、对比度拉伸或灰度变换,它是图像数字化软件和图像显示软件的重要组成部分。下面将对本设计解决各图像点处理模块运用进行到的理论和编程实现进行详细讲述。 1、光线补偿 (1)算法思想: 光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖、照片偏黄、便蓝等等。这种现象在艺术照片中更为常见。所以Anil K.Jain等提出,为了抵消这种整个图像中存在着的色彩偏差,我们将整个图像中所有像素亮度(是经过了非线形r-校正后的亮度)从高到低进行排列,取前5%的像素,如果这些像素的数目足够多(例如,大于100),我们就将它们的亮度作为“参考白”(Reference White),也即将它们的色彩的R、G、B分量值都调整为255。整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换。 (2) 具体实现光线补偿功能: 明白了光线补偿这功能的算法及思想,就可以编码实现其功能了,实现过程如下: ①、 编辑菜单IDR_MAINFRAM,先在其中添加一菜单项,将其命名为“预处理”,并在其属性栏中将其设为“弹出”菜单,点击预处理该菜单项将会弹出一个新的子菜单,此时把该子菜单命名为“光线补偿”,并把其ID设为ID_READY_LIGHTINGCONPENSATE,对应文件FaceDetectView.Cpp中的函数ReadyLightingconpensate()实现,并在void CFaceDetectView:: OnReadyLightingconpensate()中添加如下代码: hDIBTemp = gDib.CopyHandle(hDIB); gDib.LightingCompensate(hDIB); GlobalUnlock(hDIB); Invalidate(); 光线补偿功能实质上是用上段代码中的LightingCompensate()函数来进行实现。函数LightingCompensate()是类DIB的一个成员函数。其核心代码如下所述: //下面的循环对图像进行光线补偿 for(i =0;i<height;i++) for(int j=0;j<width;j++) { //获取像素偏移 lOffset = this->PixelOffset(i,j,wBytesPerLine); //得到蓝色分量 *(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; }
| ||||||||||||||||||||||||||||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | ||||||||||||||||||||||||||||
本文选自计算机毕业设计http://myeducs.cn |