文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学的各位小编整理了VB类作品-基于VB指纹识别系统的设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
下面的函数代码实现图像的增强处理。编程实际中采用的是能较好保持剃度信息的3层小波变换,有HH3、HL3、LH3、LL3、HL2、LH2、HH2、HL1、LH1和HH1共10个频带,分配了10个浮点型的数据空间。编程步骤如下: l 读入图像数据,完成3层小波变换。 l 对得到的小波系数完成正规化处理,使其位于设备的显示灰度范围。那么在编程实际中,灰度范围为0~255,完成该步骤的函数为Wvlt_Normalize函数,随后计算图像小波系数的剃度信息。 l 利用Search_BandMax函数得到各频带小波系数的最大值,取得滤波器参数,然后计算得到 (1)函数描述 Band_Enhance完成小波剃度信息的滤波处理,使其得到增强。 (2)函数参数: float **pfNorGradient :图像小波剃度信息的数据空间指针。 float FilterCoeff:频带滤波参数。 int Scan_y :扫描线起始横坐标 int Scan_x :扫描线起始纵坐标 int End_y :扫描线终止横坐标 int End_x :扫描线终止纵坐标 void CDiproc:: Band_Enhance(float **pfNorGradient, float FilterCoeff , int Scan_y, int Scan_x, int End_y, int End_x) { for(int y = Scan_y; y < End_y; y ++) for(int x = Scan_x; x < End_x; x ++) fpNormGradient[y][x]*=(float)(255.0*FilterCoeff); } l 完成增强剃度信息的计算后,还原出小波系数,并经过图像灰度直方图的均衡化处理,进一步加强的质量。 l 最后利用图像复原操作得到增强后的图像,并将数据句柄传递给CWvltDoc,完成整个的图像增强操作。 下面的代码是完成图像的增强处理。 (1)函数描述: DIP_ConsEnhance完成图像对比度信息的增强,获取隐藏的图像信息 (2)函数参数: short **spData :二维指针,指向原始的图像数据 int nHeight :图像属性参数,数值为原始图像的高度值 int nWidth :图像属性参数,数值为原始图像的宽度值 float *NormWvltRng :存放图像小波的正则化参数以及逆变换的正则化参数 void CDiproc::DIP_ConsEnhance(short **spData, int nHeight, int nWidth, float *NormWvltRng) { short **spOriginData, **spTransData, **spWvltData; float **fpNormGradient , filtCoeff[10], *fWvltRng; int iHeight = nHeight, iWidth = nWidth; int iHeight_H = nHeight / 2, iWidth_H = nWidth / 2; int x, y; fWvltRng = NormWvltRng; //为图像处理分配内存空间 spOriginData = spData; spTransData = new short * [nHeight]; spWvltData = new short * [nHeight]; fpNormGradient = new float * [nHeight]; for(int i = 0; i < nHeight; i ++) { spTransData[i] = new short [nWidth]; spWvltData[i] = new short [nWidth]; fpNormGradient[i] = new float [nWidth]; } //完成一次图像小波变换 CWvltTrans *pTrans; pTrans->DWT_TriLayers(spOriginData, spTransData, spWvltData, iHeight, iHeight_H, iWidth, iWidth_H, 3, 1.414); //小波系数的正则化处理 //正则化处理后spData存放非正则化的小波系数,spWvltData存放正则化后的小波系数 Wvlt_Normalize(spWvltData, iHeight, iWidth, fWvltRng); //计算小波系数的梯度信息,将其存放在spTransData中 //设定显示设备的颜色灰度范围是0~255 for(y = 0; y < nHeight; y ++) { for(x = 0; x < nWidth; x ++) { fpNormGradient[y][x] = (float) spWvltData[y][x] / 255; } } //选择线性滤波器gj(x) = x, 且v =kj gj(u) //统计出不同频带小波系数的极大值 for(y = 0; y < 3; y ++) { if(y == 0) {filtCoeff[4*y] = Search_BandMax(spWvltData, 0, 0, iHeight / 8, iWidth / 8); } filtCoeff[3*y + 1] = Search_BandMax(spWvltData, 0, (int)(pow(2,y) * iWidth / 8), (int)(pow(2,y)* iHeight / 8), (int)(pow(2,y)*iWidth / 4)); filtCoeff[3*y + 2] = Search_BandMax(spWvltData, (int)(pow(2,y) * iHeight / 8), 0, (int)(pow(2,y)* iHeight / 4), (int)(pow(2,y)*iWidth / 8)); filtCoeff[3*y + 3] = Search_BandMax(spWvltData, (int)(pow(2,y) * iHeight / 8), (int)(pow(2,y) * iWidth / 8), (int)(pow(2,y)* iHeight / 4), (int)(pow(2,y)*iWidth / 4)); } //计算得到各频带滤波器的滤波系数 for(y = 0; y < 10; y++) { filtCoeff[y] = (float) 255.0 / filtCoeff[y]; filtCoeff[0] += (float)sqrt(filtCoeff[y]); } filtCoeff[0] /= 10; //正则化后小波信息的梯度信息滤波处理 for(y = 0; y < 3; y ++) { if(y == 0) {Band_Enhance(fpNormGradient, filtCoeff[3*y], 0, 0, iHeight / 8, iWidth / 8); } Band_Enhance(fpNormGradient, (float)sqrt(filtCoeff[3*y + 1]) /2, 0, (int) (pow(2,y) * iWidth / 8), (int)(pow(2,y)* iHeight / 8), (int)(pow(2,y)*iWidth / 4)); Band_Enhance(fpNormGradient, (float)sqrt(filtCoeff[3*y + 2]) /2, (int)(pow(2,y) * iHeight / 8), 0, (int)(pow(2,y)* iHeight / 4), (int)(pow(2,y)*iWidth / 8)); Band_Enhance(fpNormGradient, (float)sqrt(filtCoeff[3*y + 3]) /2, (int)(pow(2,y) * iHeight / 8), (int)(pow(2,y) * iWidth / 8), (int)(pow(2,y)* iHeight / 4), (int)(pow(2,y)*iWidth / 4)); } //还原出滤波增强后的小波系数 for(y = 0; y< iHeight; y ++) { for(x = 0; x < iWidth; x++) { fpNormGradient[y][x] *= (float) (fWvltRng[1] - fWvltRng[0]); fpNormGradient[y][x] /= 255.0; spWvltData[y][x] = (short) fpNormGradient[y][x] + fWvltRng[0]; }} //复原增强后的小波系数 DIP_WvltRevers(spOriginData, spTransData, spWvltData, iHeight, iHeight_H, iWidth, iWidth_H, 3, 1.414); //将复原的图像数据进行正则化 Wvlt_Normalize(spOriginData, iHeight, iWidth, fWvltRng); //释放临时的数据空间 delete spTransData; delete spWvltData; delete fpNormGradient; }
|
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |