手背静脉识别的图像处理算法

手背静脉识别的图像处理算法手背静脉识别的图像处理算法题目内容及要求手背静脉识别技术作为一种全新的特征识别技术,相比于传统的生物识别技术(如指纹识别)具有许多明显的优势,然而对于该技术的研究尚处于刚刚起步阶段,使用计算机来直接进行静脉识别与身份匹配仍然较为困难,为了方便后续特征识别,提高静脉识别的准确度和优越性,有必要对获取的静脉图像进行一系列处理,得到静脉的骨架结构。题目主要要求为:1.对采集图像进行背景去除,取得…

大家好,又见面了,我是你们的朋友全栈君。

手背静脉识别的图像处理算法

题目内容及要求

手背静脉识别技术作为一种全新的特征识别技术,相比于传统的生物识别技术(如指纹识别)具有许多明显的优势,然而对于该技术的研究尚处于刚刚起步阶段,使用计算机来直接进行静脉识别与身份匹配仍然较为困难,为了方便后续特征识别,提高静脉识别的准确度和优越性,有必要对获取的静脉图像进行一系列处理,得到静脉的骨架结构。
题目主要要求为:
1.对采集图像进行背景去除,取得手背部分;
2.计算采集手背的质心并提取手背有效区域;
3.提取手背静脉走势;
4.对提取的静脉进行细化处理,去除毛刺;
5.改进算法,提高程序的通用性和适普性;
6.在图像分割上尝试不同的方法,并比较结果的好坏。

二、题目分析

静脉识别是一种近年来迅速发展的红外生物识别技术,它以非接触、高准确度、低重复率等优点获得了广泛的关注,本文在现有的静脉识别研究基础上,提出了有效的识别方法,前期以题目所给图片为主要试验图,后期进一步改进优化,尝试提取更多的人体近红外手背静脉图,使程序具有较好的静脉识别率。
在图像采集过程中,由于受到环境和采集设备等的影响,原始图像中常常含有多种噪声,这使得图像分割步骤中静脉纹路有较大的突起并且边缘存在许多毛刺,甚至会使图像质心的计算出现较大偏差进而影响图像有效区域的提取。因此对图像的预处理过程对防止静脉纹路的骨架出现较大失真具有重要作用。
我们首先需要对原始图像进行预处理,对灰度化的图像去除背景,计算质心并提取有效区域,然后对有效区域进行直方图均衡化处理进行图像增强,采用均值滤波方法对图像进行平滑处理;随后对比采用不同的图像分割方法,将效果最好的处理结果进行图像细化,获得光滑的并且失真较小的静脉骨架。
总体流程图如下:
在这里插入图片描述

解决问题的方法及原理

3.1 图像预处理
3.1.1 图像尺寸归一化
图像尺寸归一化就是处理多幅图像使其大小尺寸一致。该步骤对于处理单幅图像而言并不必要,但是对于多幅图像的特征比对以及效果图与示例图的效果比较仍具有作用。
3.1.2 图像灰度归一化
由于每个人的手背区域尺寸、手背脂肪厚度、图像采集时间和红外光强等因素均有不同,为了提高后续识别的准确性,需要将采集图像的灰度统一到同一灰度范围内,即对图像灰度值进行归一化处理。

在这里插入图片描述3.1.3 二值化处理
将彩图或灰度图转化为二值图,为后续质心确定做准备。
3.1.4 形态学处理
在二值化处理过程中我们发现处理效果存在较多的孔洞和毛边,边缘并不流畅,因此我们对处理后的二值图像进行开运算和闭运算,消除毛边,平滑边缘。
我们知道开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便;而闭运算能够填平小孔,弥合小裂缝,而总的位置和形状不变。因此我们具体处理为先开运算去除背景噪声,再继续闭运算填充目标内的孔洞。
3.2 图像有效区域提取
3.2.1 标记质心
采集到的静脉图像库中的图像为256级灰度,其分辨率大小为462×489,显然,图像中除了含有手背图像外,还含有很多背景,为了减少背景对静脉纹络的影响,我们需要提取含有手背静脉纹络的有效区域。就是指从采集的手背图像中定位出对特征提取有意义的区域,定位的精确很大程度上将直接影响识别结果。
我们采用基于质心的有效区域提取算法,因此确定质心的位置尤为重要。
具体做法是对形态学处理后的平滑二值图进行逐点扫描,计算得出质心:

在这里插入图片描述在这里插入图片描述在这里插入图片描述其中A是二值图中的手背区域,M是行数,N是列数。

3.2.2 计算手背部分面积并标记有效区域
我们知道二值图仅有两种灰度值,便于进行面积的计算,因此我们对含有手背的二值图进行求和,得到的数值即为手背的白色区域所含的像素数,即为书背的面积。
在选取有效区域部分中,我们分别设计了自动有效区域选取和人工有效区域选取的两种方案。其中自动选取主要依据质心的位置,根据手背面积的开方值作为所选区域的边长a,以质心为中心确定矩形有效区域;人工选取主要是基于用户的不同选择需求和爱好,方便使用者具体准确地确定所选区域,通过确定的行、列数提取有效区域。
3.3 特征区域图像增强
在手背静脉图像采集过程中,由于静脉采集装置受采集光强以及个人手背薄厚影响,它所采集的图像在灰度上可能就存在差异。通常情况下,所采集到的静脉图像中,静脉血管纹理和手背的灰度差别很小。大部分分割法会导致部分可用信息丢失,而图像增强处理是获取有效信息的保证,因此,为便于静脉纹理的分割,对采集的图像进行一系列处理来增强静脉纹理是非常必要的。
3.3.1巴特沃斯高通滤波器
由于我们所处理的图像是近红外图像,对比度较低,灰度较为集中,当手背拍摄角度不合适或近红外光较弱时,将对后期静脉提起产生很大的不利影响。因此有必要对图像中高频部分进行增强。我们知道频谱图中频率较低的部分对应空域变化缓慢的平滑区域,而频率较高的部分对应空域变化显著的细节区域,因此我们可以构造高通滤波器,实现锐化图像的作用,更好的提取静脉边缘。
我们通过巴特沃斯高通滤波器实现滤波,再加上一个合适的偏移量,提高图像的高频成分的同时保证了低频部分的灰色色调【6】,更好地达到图像增强的效果。该方法的传递函数为

在这里插入图片描述其中,a 0,且b>a。偏移量a 的典型值在0. 25到0. 5之间, 乘数b 的典型值在1. 5 到2. 0 之间。这里我们将a设置为0.5;b设置为2。
二阶巴特沃思型高通滤波器的传递函数:
在这里插入图片描述上式中, 为 点距频率矩形中心的距离, 为截止频率。
假设 均为二维离散空间上的两个离散函数, 为图像位于 点处的灰度值, 为增强后图像位于 点处的灰度值, , 分别是上面两个图像的傅里叶变换。可得高频增强的频域模型为:

在这里插入图片描述再通过傅里叶逆变换我们可以得到增强后的图像灰度信息
3.3.2 空域滤波
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
具体方法【14】是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为
在这里插入图片描述其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为33,55区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。
而均值滤波采用的主要方法为邻域平均法。基本原理【15】是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),可以选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即
在这里插入图片描述其中m为该模板中包含当前像素在内的像素总个数。

3.3.3 直方图均衡
直方图可以反映图像的灰度分布情况,而直方图均衡(Histogram Equalization, HE)是一种最常用的直方图修正技术,它以数理统计和概率理论为基础,基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围,从而可达到增强图像整体对比度的效果。
根据直方图修正原理【1】,对于数字图像,一幅图像的灰度级 出现的概率近似为
在这里插入图片描述其中, 是图像中灰度级为 的像素的个数, 是图像中像素的总个数。变换函数 的离散形式为

在这里插入图片描述明确变换函数后,即可对原始图像进行对应的均衡化变换。
在这里插入图片描述

直方图均衡化,其实质上是对原始图像的像素灰度做某种映射变换,把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部的灰度范围内的平均分布,对于整体偏量或偏暗的图像具有较好的改善效果。
直方图均衡又分为全局直方图均衡和局部直方图均衡。全局直方图均衡算法简单高效,适合于整体增强。但是对于某些图像的不同区域,灰度相差较大,此时该方法很难识别其中的细节,造成部分信息丢失。局部直方图均衡能够在一定程度上克服上述缺点,主要方法是采用滑动模板,对模板范围窗口中的直方图进行均衡化,进而实现对中心像素灰度的增强,能够使图像的每个小区域的细节得到增强。但是同时也会在增强局部特征的同时引入附加特征,造成图像的噪声增加,对静脉提取产生不利影响。

3.4 图像分割
3.4.1 OSTU算法
对于图像 I(x,y),前景(即目标)和背景的分割阈值记作 T,属于前景的像素点数占整幅图像的比例记为 ω0,平均灰度为 μ0;背景像素点数占整幅图像的比例为 ω1,平均灰度为 μ1;整幅图像的平均灰度记为μ,类间方差记为g。
假设图像大小为M×N,图像中像素的灰度值小于阈值 T 的像素个数为 N0,像素灰度大于阈值T的像素个数为 N1,那么:
在这里插入图片描述
采用遍历的方法使得类间方差g最大的阈值T,即为所求。Ostu方法可以形象地理解为:求取直方图有两个峰值的图像中那两个峰值之间的低谷值 T 。
3.4.2双阈值分割法
直方图双峰法(2-Mode method),如下图所示,即如果图像灰度直方图呈明显的双峰状,则选取双峰间的最低谷出作为图像分割的阈值所在。即下图中,以Zt为阈值进行二值化分割,可以将目标和背景分割开。 图示如下:

在这里插入图片描述3.4.3 NiBlack算法
NiBlack算法是一种局部动态阈值法,此算法基本思想是对每个像素计算它的阈值,然后进行阈值分割,其计算公式如下:
在这里插入图片描述据此我们知道该算法的执行基础元素是互不相邻的像素点,作用的区域是位于相应像素点内部的邻域,如果得到了该部分的方差与均值,那么这一点的阈值也随之得出。
设图像像素点 的灰度值为 ,则
在这里插入图片描述在这里插入图片描述分割之后得到的图像计算公式为:【02】
在这里插入图片描述3.4.4一阶微分算子锐化图像
一阶微分算子可以借用空域微分算子,通过卷积实现图像锐化,但在实际图像中求导往往是利用查分近似微分来进行的。梯度对应一阶导数,故梯度算子是一阶导数算子,对于一个连续函数f(x,y),它在位置(x,y)处的梯度可以表示成一个矢量:

在这里插入图片描述对于一幅数字图像而言,导数可以近似用差分来近似,因此梯度可以标识成为:

在这里插入图片描述
在实际中常常使用小区域模板卷积来近似计算。根据模板的不同,可以对应不同的元素系数值,因此构成了许多不同的检测算子。
3.5 图像细化
静脉图像经过二值化分割后,仍然具有一定的宽度。为了得到单像素描绘的静脉血管,保持原有的纹路特征,使得静脉骨架真实有效,便于研究,我们需要对分割图像进行细化处理。细化时应保证骨架的连接性,特征点不变,还应保持骨架的中心基本不变。细化的好坏直接影响静脉识别的识别率。
最常见的细化算法为条件细化算法,其具体内容如下:
设已知目标点标记为1,背景点标记为0.定义边界点:本身标记为1而其8-联通区域中至少有一个点标记为0的点。算法对边界点进行如下操作:
考虑以边界点为中心的8-邻域【1】,即中心点为P1,其邻域的八个点顺时针绕中心点分别记为P2,P3……P9,其中P2在P1上方。如果P1=1而且下面四个条件如果同时满足,则删除P1。
P9 P2 P3
P8 P1 P4
P7 P6 P5
(1). 2≤N(P1)≤6
(2). S(P1)=1
(3). P2P4P6=0
(4). P4P6P8=0
其中N(P1)是P1的非零邻点个数,S(P1)是以P2,P3……P9为序时这些点的值从0-1变化的次数。当对所有边界点都检查完毕后,将所有标记了的点去除,直到所有的像素点都不可删除。
在图像细化后,可能存在静脉毛边、突起或孤立的小区域,为了准确检验,有必要进行细化后的修复,通过这一过程使静脉变得平滑。


具体实现过程这里不再赘述


附上操作结果(需要源码请与我联系

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述图16 Ostu算法处理结果图16 Ostu算法处理结果
在这里插入图片描述图17 双阈值分割处理结果

在这里插入图片描述图18 迭代式阈值分割法处理结果.

在这里插入图片描述图19 最佳阈值分割法处理结果

在这里插入图片描述图20 不同参数NiBlack算法处理结果

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述对于近红外手背的静脉提取,本文使用了多种处理方法,并进行了对比和择优选择:
A. 去噪阶段使用不同的模板进行滤波处理,分别选择效果最好的模板;
B. 在直方图处理阶段比对了全局直方图处理结果以及不同模板大小的局部直方图处理结果,最终选择采用大小为150的局部直方图处理结果;
C. 在确定有效区域阶段分别设计了自动区域提取和自定义区域选择两种方案,使图像处理程序更具适普性;
D. 图像细化和修复阶段根据实际多次进行不同模板大小的膨胀和滤波处理,以求连接静脉并且去除噪点,使结果达到最好效果;
E. 在形态学操作效果较差的情况下,我们使用逻辑运算自定义函数‘fillholes’填补多余孔洞,具有一定的创新型;
F. 同组成员使用不同图像分割算法进行静脉提取,比对结果后最终选择NiBlack算法。

但是本文程序仍然存在如下不足及局限性:
A. 在图像细化和修复阶段,由于进行多次膨胀处理以及中值滤波,使得静脉相比于原图具有一定的失真;
B. 本文针对自定义函数fillboles的阈值确定以及图像细化修复过程具有较大的图像依赖性,在其他静脉图像中也许并不能得到较好的处理效果;
C. 题目所给的图像较为特殊,二值化后仅存在一个连通区域,因此为质心确定提供了方便,但其他手背静脉图像也许会存在多个连通区域,这也给其质心确定带来困难。
纵观全文,我们主要进行了图像形态学处理、手背质心确定、有效区域提取、噪声处理、直方图处理、图像分割、孔洞填充以及图像的细化和修复。其中对于图像分割和图像增强方面进行了较为细致的研究比对,采用局部直方图均衡、巴特沃斯高通滤波和NiBlack算法并且取得了较好的效果。在参数的选择方面,我们多次进行测试,并采用了较为合理的参数值。

注:有需要源文件及设计文件的朋友可以联系作者,作者创作不易,希望客官们打赏~(作者联系方式见个人资料)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145752.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python运维和开发实战-高级篇

    python运维和开发实战-高级篇python运维和开发实战-高级篇python运维和开发实战-高级篇课程链接如下:通过如下链接地址购买课程可享受2.5折优惠哈,时间有限~????https://edu.51cto.co…

  • java 流媒体服务器搭建_搭建流媒体服务器(1)

    java 流媒体服务器搭建_搭建流媒体服务器(1)一、前语本文纂写时间是2018年12月17日,所描述的软件WowzaMediaServer此时已经出了4或更高,但是2.2.2提供的功能已经是Goodenoughforme.如果发现4足够更好,后面文章也许会再续。本文试图描述一个在WindowsServer2012上安装了WowzaMediaServerv2.2.2流媒体服务的事件。最终会另服务器提供给外部适当的Server和…

  • 微信小程序的拍照功能「建议收藏」

    作者:刘旭濠撰写时间:2019年04月14日一开始就想弄个微信的小程序玩玩然后想了想最后就决定了,就弄个微信小程序的拍照功能,然后就上网查询了一些资料,在微信社区文档里有很多功能可以使用,然后我就尝试的找了一下关于拍照的资料,然后整理出来文档和网上的一些资料,在微信的API还有更多的资料和其他好玩的玩意代码如下://定时器拍照setTime:function(){  lett…

  • Method getMethod

    转自:https://www.cnblogs.com/douder/p/7237883.htmlMethod getMethod(String name, Class<?>… parameterTypes) –返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。 方法后面接收的就是Class类的对象,而如:String.class、i…

    2021年11月30日
  • 圆柱体积立方计算公式_圆的体积公式怎么算

    圆柱体积立方计算公式_圆的体积公式怎么算圆柱的体积=底面积x高,即V=S底面积×h=(π×r×r)h。假设圆柱的底面半径为2米,高为2米,则此圆柱的体积为:8π立方米。再根据1立方米=1000立方分米,转换成立方分米。其他转换类似。圆柱体是由两个底面和一个侧面组成的。在同一个平面内有一条定直线和一条动线,当这个平面绕着这条定直线旋转一周时,这条动线所成的面叫做旋转面,这条定直线叫做旋转面的轴,这条动线叫做旋转面的母线。扩展资料:圆柱的性…

  • drupal安装配置错误

    drupal安装配置错误安装配置错误#########################################################################1、403错误 查看errorlog发现:AH01630:clientdeniedbyserverconfiguration:F:/phpweb/drupal——————————-…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号