虹膜识别(一)--基于几何特征确定中心点
2017-07-17 21:19
232 查看
该篇介绍如何对一个虹膜眼睛中心进行定位识别,这里以我做的一种方法写一下,当然还有很多其他更好的方法,仅做参考下。
正常情况下,一副拍好的虹膜图像如下所示(当然有的可能不一样,大概相同):
从图上可以看出,要想定位出图中眼睛的中心还有一些问题,研究方法也有很多种,我采用的是基于人眼特征和基于棱阔的hough变换检测来做的。简单来说,根据图的特征,我们会发现人眼虹膜图的灰度值呈现一定的变化,了解图像的知道,在分辨率为256时,黑色灰度值为0,白色灰度值为256,图像也是这样一系列的灰度值组成的,现在我们通过matlab导入这个图像,把图像的每一横和列的所有灰度值相加,最后画出这个灰度变化图如下:
通过这种灰度和的图像,我们很容易找到虹膜眼睛的圆心即为两幅图的最低点,找出最低点对应的坐标值就是圆心所在位置,这幅图像圆心大概就在(340,290)。
如图中亮点所示:
这里有一些问题,不同的图像这两个图差别很大,而且直接用原图来进行这种操作产生的误差会很大,为什么会很大了?主要是一些噪声的影响(主要包括眼睫毛(影响最大),灯光产生的白色亮点等等),为了更好的消除它们的影响,在开始就先进行一次滤波嘈杂,比如说用中值滤波法:img = medfilt2(img,[x y],'symmetric');这样得到的图如下:
在对上面这个图进行上述的横向纵向灰度值累加:num_x = sum(img);num_y = sum(img');最后画出这两个:figure,plot(num_x); figure,plot(num_y);就是上面显示的图了。至于如何从上面的那个坐标图找出最小值就很简单了,这里附下我的方法:
[html]
view plain
copy
function findmin = find_min(Sum)
%------------------------------输入参数-----------------------------
% 区域搜索找到可以搜索的中心
% sum =1*num矩阵
% 返回findmin = num1,像素和和最小值
%-------------------------------------------------------------------
ss = size(Sum);
num = ss(2);
i=1;
while Sum(i+5) > Sum(i)
i = i+1 ;
if i > num
end
end
num_max1 = i;
j = num;
while Sum(j-5) > Sum(j)
j = j-1;
if j<1
end
end
num_max2 = j;
sum1 = num_max1;
num_min = num_max1 ;
for k = num_max1:num_max2
if Sum(k) < Sum(sum1)
sum1 = k;
num_min = k;
end
end
findmin = num_min;
正常情况下,一副拍好的虹膜图像如下所示(当然有的可能不一样,大概相同):
从图上可以看出,要想定位出图中眼睛的中心还有一些问题,研究方法也有很多种,我采用的是基于人眼特征和基于棱阔的hough变换检测来做的。简单来说,根据图的特征,我们会发现人眼虹膜图的灰度值呈现一定的变化,了解图像的知道,在分辨率为256时,黑色灰度值为0,白色灰度值为256,图像也是这样一系列的灰度值组成的,现在我们通过matlab导入这个图像,把图像的每一横和列的所有灰度值相加,最后画出这个灰度变化图如下:
通过这种灰度和的图像,我们很容易找到虹膜眼睛的圆心即为两幅图的最低点,找出最低点对应的坐标值就是圆心所在位置,这幅图像圆心大概就在(340,290)。
如图中亮点所示:
这里有一些问题,不同的图像这两个图差别很大,而且直接用原图来进行这种操作产生的误差会很大,为什么会很大了?主要是一些噪声的影响(主要包括眼睫毛(影响最大),灯光产生的白色亮点等等),为了更好的消除它们的影响,在开始就先进行一次滤波嘈杂,比如说用中值滤波法:img = medfilt2(img,[x y],'symmetric');这样得到的图如下:
在对上面这个图进行上述的横向纵向灰度值累加:num_x = sum(img);num_y = sum(img');最后画出这两个:figure,plot(num_x); figure,plot(num_y);就是上面显示的图了。至于如何从上面的那个坐标图找出最小值就很简单了,这里附下我的方法:
[html]
view plain
copy
function findmin = find_min(Sum)
%------------------------------输入参数-----------------------------
% 区域搜索找到可以搜索的中心
% sum =1*num矩阵
% 返回findmin = num1,像素和和最小值
%-------------------------------------------------------------------
ss = size(Sum);
num = ss(2);
i=1;
while Sum(i+5) > Sum(i)
i = i+1 ;
if i > num
end
end
num_max1 = i;
j = num;
while Sum(j-5) > Sum(j)
j = j-1;
if j<1
end
end
num_max2 = j;
sum1 = num_max1;
num_min = num_max1 ;
for k = num_max1:num_max2
if Sum(k) < Sum(sum1)
sum1 = k;
num_min = k;
end
end
findmin = num_min;
相关文章推荐
- 虹膜识别(一)--基于几何特征确定中心点
- 基于几何特征的地面点云分割方法(汇总)
- 基于点云几何特征匹配的配准概述
- ransac算法–基于几何关系的图像特征匹配点对提纯
- ransac算法–基于几何关系的图像特征匹配点对提纯 ransac算法–基于几何关系的图像特征匹配点对提纯
- 基于opencv的图像拼接(一): sift特征点提取
- 基于IPv6的下一代网络技术的特征分析
- 基于训练样本少,特征过多的处理方法
- 基于JAVA的水泥三维图像特征提取系统设计与实现 之一 JAVA 3D学习笔记
- 小随笔:写一个基于几何生成方法的描边效果
- 14基于opencv的重映射_SURF特征点检测
- 数字图像处理:第十一章基于特征向量的变换
- 网游玩家流失特征提取办法(基于C5.0算法和SPSS Modeler)
- (转)基于Haar特征的Adaboost人脸检测分类器
- 基于hog特征的人脸识别的项
- Nboot中nand flash控制器参数TACLS、TWRPH0和TWRPH1的确定(基于K9F1208U0B)
- 短文本分析----基于python的TF-IDF特征词标签自动化提取
- (OpenCV3.2.0)基于HOG特征的SVM训练与测试实例
- 特征向量的几何含义
- Jacobi法确定对称矩阵特征值与特征向量