【MATLAB图像处理实用案例详解(11)】——基于Hough变换的人眼虹膜定位方法

news2024/12/28 23:40:01

目录

    • 一、Hough变换基本原理
    • 二、算法流程
      • 2.1 分离瞳孔并估算虹膜内半径
      • 2.2 Hough变换定位内外虹膜
    • 三、效果演示

一、Hough变换基本原理

Hough 变换作为一种参数空间变换算法,直线和其他参数化形状检测的重要工具。Hough 变换具有较强的稳定性和鲁棒性,可以在一定程度上避免噪声的影响,后续研究将极坐标引入Hough 变换,使这种方法可以更加有效地用于直线检测和其他任意几何形状的检测。Ballard 提出了非解析任意形状的R表法,将Hough 变换推广到对任意方向和范围的非解析任意形状的识别,这种方法被称为广义Hough 变换,论文链接:“Generalizing the Hough transform to detect arbitrary shapes”。
在这里插入图片描述
直线 y = m x + b y=mx+b y=mx+b可用极坐标表示为: r = x c o s ( θ ) + y s i n ( θ ) r=xcos (θ) + ysin (θ) r=xcos(θ)+ysin(θ)
在这里插入图片描述
( r , θ ) (r, θ) (r,θ) 定义了一个从原点到该直线最近点的向量。 x 、y 平面上的任意一条直线的Hough 变换就是寻找r 、 θ 平面上的一个对应点的过程。

多级Hough 变换首先用较大的θs和θr以求出倾斜角度的大致范围,然后用较小的θs和θr对倾斜角度进行细化处理。

关于霍夫变换原理的详细解释可以参考文章:https://blog.csdn.net/didi_ya/article/details/111149724。

二、算法流程

虹膜(包括纹理的部分)是内外两个近似圆形边界之间的部分,虹膜的内侧与瞳孔相邻,外侧与眼白相邻,这两个圆不是完全同心的,需要分别对内外两个边界进行处理。本文主要研究基于Hough变换的虹膜定位方法

2.1 分离瞳孔并估算虹膜内半径

仔细观察眼睛的图像可以发现与眼睛的其他部分相比,瞳孔暗得多,所以可以采用二值化的方法分离出瞳孔,根据瞳孔图像的面积估算出虹膜的内半径。二值化方法的关键在于阈值的选取,具体的做法是,先计算出整个图像的灰度直方图,它应该有两个主要的峰值,其中第一个峰值,对应的就是瞳孔区域灰度集中的范围,第二个峰值对应的是虹膜区域的灰度集中范围。显然,提取瞳孔的二值化阈值应该选择在第一个峰值的右侧,下图是二值化后的結果,从图中可以看出,瞳孔也成功的分离了出来。
灰度直方图:
在这里插入图片描述
二值化结果:
在这里插入图片描述

2.2 Hough变换定位内外虹膜

三、效果演示

最终的定位结果如下:
在这里插入图片描述
可以发现已经成功检测到了虹膜的内外边界,并将虹膜进行了提取。ok,以上便是本文的全部内容了。


如果需要源代码,可以参考资源:https://download.csdn.net/download/didi_ya/87695242
,如果遇到任何运行问题,请私信博主,看到后会免费答疑解惑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI绘画】外网一直进不去?别担心,还有AI绘画小程序和文心一格

这是加入新星计划的最后一周的最后一篇文章啦!文章的最后是我想总结一下从三月底到四月中旬这几十天的感想~ 系列文章: 【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?_山楂山楂丸的博客-CSDN博客 目录 前言 …

pytest.mark

目录 一、Pytest简介 二、安装 三、pytest.mark 1.标记 2.参数化 3. skip跳过 4. xfail 该用例置为失败 一、Pytest简介 Pytest是python一个第三方测试框架,有非富的第三方插件可以扩展 特点: 简单灵活,容易上⼿;⽀持参数…

ASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL

编辑:ll ASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL 型号:ADM202EARNZ-REEL 品牌:ADI/亚德诺 封装:SOIC-16 批号:2023 引脚数量:16 安装类型:表面贴装型 ADM202EARNZ-REE…

【软件测试】Postman简单使用教程

【软件测试】Postman使用教程 创建集合 新建一个collection 新建一个请求 默认get 举例测试get请求 后端controller代码,该功能是查询所有信息 // 查询所有员工信息RequestMapping(value "/employee",method RequestMethod.GET)public String g…

ELK日志分析初

ELK是一个开源的日志分析系统 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在…

代码随想录算法训练营第三十一天| 理论基础 、455.分发饼干 、376. 摆动序列、53. 最大子序和

文章目录 491.理论基础455.分发饼干376. 摆动序列:star:53. 最大子序和:star: 491.理论基础 链接:代码随想录 解题思路: 通过局部最优,推出整体最优 如何验证贪心算法的正确性 最好用的策略就是举反例,如果想不到反例,那么就试一…

前端项目打包并部署

一、vue项目打包 1.1 方式一:vue项目命令行打包 在当前项目路径下,执行命令 npm run build 在当前项目路径下,生成 一个dist文件夹。 将来部署项目,是部署的dist这个文件。 1.2 方式二:使用vue ui打包项目 在终端中…

前端学习之路 来自前端方向学生的总结

恭喜您!您发现了宝藏! 我发现很多小伙伴,对于前端感兴趣,也很想去学好,但是却无从下手,不知道如何去学习。作为一名现处于大三即将大四的学生,借此机会来分享分享我的前端学习之路!…

扬帆优配|TMT板块密集发布减持计划 火爆行情潜藏估值难以匹配隐忧

4月以来,多家上市公司发表股东减持公告,其中一季度大热的TMT(科技、媒体和电信)板块的股东减持最为引人注目。 32只TMT股拟减持上限占比超1% 到4月18日,4月以来已有61家TMT板块上市公司发布减持方案。从拟变动数量上限…

神策数据荣登胡润百富 2023 全球独角兽榜

4 月 18 日,胡润研究院于广州 2023 全球独角兽 CEO 大会发布《2023 全球独角兽榜》(Global Unicorn Index 2023),列出了全球成立于 2000 年之后,价值 10 亿美元以上的非上市公司(估值计算日期截止 2022 年 …

自阿里P8爆出内部1031道java面试题后,在Boss直聘狂拿千份Offer

开始之前我问大家几个问题,看大家是如何思考的: 1.程序员一定要去一线城市漂泊吗?在自己家乡如何拿到一份满意的薪水? 2.程序员被裁员、找不到工作,代表什么? 3.程序员一定要进一线大厂吗?你…

手把手教你通过 Docker 部署前后端分离项目(亲测可用)

安装Docker 安装Nginx 安装Mysql 部署SpringBoot项目 部署Vue项目 一、安装Docker 1、安装: yum install docker 2、启动/停止/重启docker服务 service docker start service docker stop service docker restart 3、查看docker版本信息 docker version…

UDS 14229-1 诊断服务,两万字长文Trace版详细解读

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

Tomcat—javaEE

文章目录 1.定义及启动2.熟悉重点目录作用2.1bin2.2conf/server.xml2.3日志文件2.4webapps 3.部署和访问 1.定义及启动 (1)Tomcat属于web服务器的一种,也是servlet的一种 (2)Windows下,双击Tomcat下/bin/s…

ArcGIS|一文彻底搞懂GIS图斑编号

实际工作中,经常会有对各类图斑进行编号的需求。数据中图斑数比较少时,我们可以手动进行编号,但数据量较大时就必须得想办法自动实现图斑编号。今天,将分享几种常见的图斑自动编号方式,主要包括:图斑顺序编…

Mysql 触发器(复习)

今天考虑一个删除记录回收站的时候,突然想到了触发器这个东西,基本上之前也很少使用。废话不不多说,先看它的解释: 在MySQL中,触发器(Trigger)是一种特殊的存储过程,它会在指定的事…

[java/初学者]java常用API(2)——字符串

前言 所谓的字符串其实就是一串连续的字符,它是由许多单个字符连接而成的。如多个英文字母所组成的一个英文单词。字符串中可以包含任意字符,这些字符必须包含在一对双引号之内,例如“Dufeng”。 而与字符串相关的类都放在java.lang包中&…

Nuitka打包PyQt项目快速上手

之前用pyinstaller打包python程序,听说Nuitka比较快,用它打包PyQt的程序练练手。 Nuitka 问了问chatGPT,总结几点:将python编译成C/C,提高速率、跨平台、编译后程序直接运行(不需要python解释器&#xff0…

【云原生】Kubernetes集群升级

【云原生】Kubernetes集群升级指南 前言一、集群升级过程辅助命令二、升级master节点2.1、升级kubeadm。2.2、验证升级计划2.3、master节点升级 三、升级node节点总结 前言 本文演示kubernetes集群从v1.24.1升级到v1.25.5。 相关文档。 一、集群升级过程辅助命令 &#xff0…

linux系统中MongoDB数据库安装及分片集群搭建

史上最全的mongodb分片集群搭建,从介绍安装到集群搭建授权,你再也找不到比他更加详细的资料了,未经允许禁止转载!! 一、简介 MongoDB是一个便于开发和扩展设计的文档数据库,属于NoSQL数据库的一种。Mongo…