网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > VB类作品 > 正文

基于VB指纹识别系统的设计

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/15

文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学的各位小编整理了VB类作品-基于VB指纹识别系统的设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

2.3.3 指纹图像增强处理的VC++编程实现及运行结果

   下面的函数代码实现图像的增强处理。编程实际中采用的是能较好保持剃度信息的3层小波变换,有HH3HL3LH3LL3HL2LH2HH2HL1LH1HH110个频带,分配了10个浮点型的数据空间。编程步骤如下:

l        读入图像数据,完成3层小波变换。

l        对得到的小波系数完成正规化处理,使其位于设备的显示灰度范围。那么在编程实际中,灰度范围为0255,完成该步骤的函数为Wvlt_Normalize函数,随后计算图像小波系数的剃度信息。

l        利用Search_BandMax函数得到各频带小波系数的最大值,取得滤波器参数,然后计算得到 ,其完成函数为Band_Enhance函数。

 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
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

  • 上一篇资讯: 基于VB的通讯录的管理
  • 原创论文

    设为首页 | 加入收藏 | 论文首页 |原创论文 |
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师