课程设计报告设计题目:指纹图像的增强—学院:电子工程学院专业:电子信息工程班级:__________________________成绩:指导教师:一、设计概述1. 课程设计题目:指纹图像的增强方法2. 基本要求:读取初始指纹图像,设计程序,实现指纹图像的增强,使指纹的纹理更加清晰,便于识别。
3. 指纹图像增强的意义:指纹是人类手指末端指腹上由凹凸的皮肤所形成的纹路。
指纹能使手在接触物件时增加摩擦力,从而更容易发力及抓紧物件。
是人类进化过程式中自然形成的。
目前尚未发现有不同的人拥有相同的指纹,所以每个人的指纹也是独一无二。
由于指纹是每个人独有的标记,近几百年来,罪犯在犯案现场留下的指纹,均成为警方追捕疑犯的重要线索,使得指纹识别技术得到了飞快的发展,指纹图像的识别也就变得非常具有意义,但是通过传感器等方式获取到的指纹图像往往是比较模糊的,识别率相对较低,此时,指纹图像增强就孕育而生,通过对指纹图像的增强处理,得出了具有较清晰的图像,是识别率更高。
二.设计思路:指纹图像增强的主要步骤及方法①读取指纹图像②指纹图像灰度化处理③指纹图像平滑处理④指纹图像的腐蚀处理⑤指纹图像的锐化处理⑥指纹图像二值化⑦指纹图像纹理的细化处理三.具体的处理流程及其分析1. 指纹图像的读取将通过传感器或者别的方式获取到的指纹图像读取到matlab 中;如.bmp .jpg 等格式的图片文件。
通过matlab 实现:I=imread(‘文件路径+图像名.jpg');2. 指纹图像灰度化处理数字图像可分为灰度图像和彩色图像。
通过灰度化处理和伪彩色处理,可以使伪彩色图像与灰度图像相互转化;灰度化就是使彩色的R,G,B 分量值相等的过程I=rbg2gray (I )3. 指纹图像平滑处理(此处我们使用的是中值滤波的方法处理) 图像平滑的主要目的是减少图像噪声。
图像噪声来自于多方面,有来自于系统外部的干扰(如电磁波或经电源窜进系统内部的外部噪声) ,也有来自于系统内部的干扰(如摄像机的热噪声、电器机械运动而产生的抖动噪声等内部噪声) 。
实际获得的图像都因受到干扰而含有噪声,噪声产生的原因决定了噪声分布的特性及与图像信号的关系。
减少噪声的方法可以在空间域或频率域处理。
在空间域中进行时,基本方法就是求像素的平均值或中值;在频率域中则运用低通滤波技术。
图像平滑总是要以一定细节模糊为代价,因此如何尽量平滑掉图像的噪声,又尽量保持图像细节,是图像平滑研究的主要问题之一。
此处我们使用的是中值滤波的方法处理。
中值滤波是一种非线性处理技术,由于它在实际运算过程中并不需要知道图像的统计特性,所以比较方便。
在一定的条件下,中值滤波可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声非常有效;但是,对一些细节多,特点是点、线、尖顶细节较多的图像则不宜采用中值滤波的方法。
中值滤波的目的是在保护图像边缘的同时,去除噪声。
中值滤波的特性:(1)对某些输入信号中值滤波具有不变性(2)中值滤波的去噪声性能中值滤波可以用来减弱随机干扰和脉冲干扰。
由于中值滤波是非线性的,因此对随机输入信号数学分析比较复杂。
中值滤波的输出与输入噪声的概率密度分布有关,而领域平均法的输出与输入分布无关。
中值滤波在抑制随机噪声上要比领域法差一些,但对于脉冲烦扰,中值滤波是非常有效的。
(3)中值滤波的频谱特性:由于中值滤波是非线性运算,在输入与输出之间的频率上不存在一一对应的关系,故不能用一般线性滤波器频率特性分析方法。
采用总体实验观察法,经大量实验表明,中值滤波器的频率响应与输入信号的频谱有关,呈现不规则波动不大的曲线,中值滤波幅谱特性起伏不大,可以认为信号经中值滤波后,频谱基本不变。
中值滤波的matlab 实现:I1=medfilt2(I,[5,5]);figure,imshow(I); figure,imshow(I1);对带有噪声的指纹图像进行预处理, 经过滤波后的图像能够消除图像中的一部分干扰影响。
4. 指纹图像的腐蚀处理指纹图像腐蚀运算后使得指纹纹路更细,便于后续的处理,但指纹图像显得模糊,但是接下来我们将对指纹图像进行锐化,使得图像边缘更加清晰。
灰度腐蚀的matlab 实现程序:s=ones(3,3);I2=imerode(I1,s);figure,imshow(I2);5. 指纹图像的锐化处理图像锐化即对图像进行处理,使图像的边缘变得鲜明。
目的是为了突出图像的边缘信息,加强轮廓特征,以便于人眼的观察和机器的识别对比。
这里我们采用的是Sobel 算子对图像增强。
Matlab 实现程序如下I3=double(I2);h=fspecial('sobel');K=filter2(h,I3);figure,imshow(K)K1=I3-K;figure,imshow(K1);指纹图像竖直方向的纹路有很大的残缺,显然该图像的清晰度不令人满意,为了获得较清晰的指纹图像,我们将对上述图像进行修补,本文所使用的方法是将锐化处理前的图像逆时针旋转90 度,再以上述同样的方法对图像进行锐化增强,由此得到的图像再顺时针旋转90 度。
matlab 实现程序:%图像逆时针旋转90 度再进行锐化I=imread('f:\image2_0.jpg');J=double(I);h=fspecial('sobel');K=filter2(h,J);figure,imshow(K)K1=J-K;figure,imshow(K1');imwrite(K1','f:\s2.jpg'); 先将两幅指纹图像进行配准,配准完成后,再进行简单的融合。
%两幅图像配准I1=imread('f:/s1.jpg');I2=imread('f:/s2.jpg');J1=double(I1);J2=double(I2);K1=fft2(J1);K2=fft2(J2);out=dftregistration(K1,K2,1);两幅图像进行配准后再相加的的MATLAB?序%配准后相加I1=imread('f:/s1.jpg');I2=imread('f:/s2.jpg');I4=double(I1);I5=double(I2);[width,height]=size(I5);NewR2=zeros(width,height);for i=1:widthfor j=1:heightsource_x=i+1;source_y=j+1; if(source_x>width||source_y>height)NewR2(i,j)=0;else if(source_x/double(uint16(source_x))==1.0&source_y/double(uint16(sour ce_y))==1.0) NewR2(i,j)=I5(int16(source_x),int16(source_y));EndendendendI6=NewR2;I3=uint8(I4);I7=uint8(I6);figure,imshow(I3);figure,imshow(I7);K=imadd(I3,I7,'uint16');figure,imshow(K,[]);6. 指纹图像的二值化对指纹图像进行二值化,其基本要求就是二值化后的图像能真实地再现原指纹。
具体要求为:①. 脊线中不出现空白。
②. 二值化后的脊线基本保持原来指纹的特征。
③. 指纹的纹线不应有太多的间断和相连。
④. 指纹纹线间的间距应大致相同。
⑤. 由于指纹识别系统的特性,二值化算法的速度也应是一个评价指标。
二值化的matlab 实现:%二值化I=imread('f:\image3.jpg'); level=graythresh(I);J=im2bw(I,level);figure,imshow(J); imwrite(J,'f:\image4.jpg')7. 指纹图像的细化细化又称骨骼化,是指在不影响图像的拓扑关系的情况下,将图像中宽度大于一个像素的线条转变为只有一个像素宽度的图像的处理过程。
细化的matlab 实现:%细化I=imread('f:/image4.jpg');J=I(:,:,1)>160;K=bwmorph(~J,'thin','inf');figure,imshow(~K);四、思考及总结在此课程设计完成之际,向我们的邓成老师表示衷心的感谢。
因为通过本次的课程设计,我们能够有一个很好的机会对过去学到的知识进行巩固和实践。
由于未学习过数字图像这门课程,并且对matlab 软件的掌握也不够精通,在设计的过程中遇到不少的陌生名词,我们基本是边学习边进行的课程设计。
能力有限,设计的结果并不尽如人意,未能将所有的思路投入到实践中。
我同时也要感谢我身边的同学,在设计期间给予了我不少有益的信息和建议,使我顺利解决了许多问题,在此向大家表示真诚的感谢。
最后衷心地感谢信息科学与工程学院领导与老师,为我们提供了良好的学习环境和实践机会,给予了我们许多有益的指导与帮助。
Matlab 软件设计一.课程设计题目:指纹图像增强方法二.基本指标:读取指纹图像,增强图像,输出图像。
三.设计思路:使用matlab 图形界面系统gui 来实现主界面。
通过鼠标点击控件,读取目标图片,把目标图片写入指定路径(默认‘ f : ')。
对目标图片进行增强处理,显示每一步的增强图像。
保存最终增强图像在指定路径中。
主界面button 选项有“打开文件”,“指纹图像增强”,“关闭窗口”,“帮助”。
四.主界面显示五、窗口控件对象和菜单对象及其功能代码实现1、‘打开文件’ 按键和‘ openpic '菜单选项实现读取目标图像和保存在规定路径下的操作。
function op enp i c__C al lb k hObjectj event dat handles% Wbjeet handle to openpie see GCBOi% eventdata reserved - to be defined in A future version of MAILAB% handles structure with, handles and user data (see GUIDATA)[pnam^j adrnam-?] =ui getf il e (J jpg J,' *. bmp J'* :if exist sirest(adrnamej pname))I^reb-imread'strcat(adrnamej pname));figur Cj i»shov(I_rgb5:titleC指纹原图像’):i^ivrite (I^rgb,J f:\inage. jpg'):elsereturn;#nd:查找图像,文件不存在则关闭,存在则保存到F:下并显示图像。