1.形态学分析

形态学是一种比较新的图像处理方法,它可以以一种特定的形态和结构元素作为样本提取出对应的形状,从而得到我们所需要的结构,且它包含有四种基本操作:膨胀、腐蚀、以及开闭操作。基于这些操作,我们可以实现对眼底血管的提取。

2.拉普拉斯算子

Laplace算子是常用的边缘检测算子,是一种简单的各向同性的微分算子,它的作用是锐化灰度发生跳变的区域,所以它可以帮助我们检测到血管边缘。

3.提取眼底血管流程图

4. 基于形态学的血管提取方法

眼底血管可以看作由一条条较小的线段组成,因此可以利用形态学操作提取血管。提取方法过程如下:

4.1 灰度化

导入原图,对图像进行灰度处理,结果如图1所示:

图1:原图             灰度化眼底图像

4.2 灰度取反

为后续方便处理,将图像灰度化后去反,结果如图2所示:

图2:灰度取反

4.3 增强血管—形态学

如图2所示,眼底血管较粗的地方相对于背景来说比较清晰,但是较细的部分与背景的灰度差太小,不容易辨别。为了更好的后续操作,显然需要对血管进行增强。所以需要用到形态学方法增强血管,形态学方法:因为血管可以看作很多小线段组成的,故选取小线段作为结构元素,由于血管的方向不是固定的,所以需要多方向提取特征,故而让小线段旋转12个角度,每个角度相差15°。然后我们会得到12张图,只需要挑选每一个像素点是12张图中所对应的像素点最大的一个组合起来。

结果如图3:显然血管较图2来说比较清晰。

图3:血管增强

4.4 膨胀重建—形态学

相比较于图2与图3会发现较小的血管有部分消失了,这是因为在形态学处理时被去除了,所以我们需要将它重建出来:首先以图2作为模板,再以图3作为恢复对象,恢复出小血管。结果如图4:

图4:膨胀重建

4.5 去除背景

从图4看,图像左边存在一个较黑的点(视盘),图像也存在一个反光点。而我们只需要眼底血管,若不将它们去除,将会影响我们后续提取血管后的质量。将它们去除的方法也很简单,这需要求图像的背景,然后用图像减去背景图便可获得只有血管的背景图。

求背景图,即是将图像完全糊化,方法有很多种,我们利用求多次形态学分析,将图像完全糊化,求得背景图,再用原图减去背景图。

结果如图5:

图5:背景图                             粗略图

4.6 提取特征—Laplace算子

从图5的粗略图上看,血管大体上是已经被提取出来了,但缺点很显然:对比度太低,色调太暗,血管相比较背景来说有些看不清。若是直接通过阈值变换得到的效果不佳,存在很多噪声。故而选用Laplace算子提取特征。选用二阶Laplace算子导数,因为它相对于一阶的Laplace算子来说对细节更为敏感,对于细线能较好的提取出来。

因为二阶Laplace算子对噪声很是敏感,在进行特征提取前,需要对图像进行平滑处理.。

结果图6:显然即使经过平滑处理后依然存在很多噪声,但也明显看到血管被清楚的提取出来,所以接下来我们需要将噪声去除,进行低通高斯滤波,减少一部分噪声,得图7:

图6:高斯平滑滤波                              特征提取

图7:低通高斯滤波

4.7 血管提取-形态学

我们通过观察图7,显然存在很多噪声。但通过分析发现,血管是有线条状,噪声都不具备线条状的条件。这时候显然可以使用形态学分析,将线条状的血管提取出来,同样使用之前的办法,每个线间隔15°提取得图:

图8:血管提取

4.8 闭运算

闭运算在数学上是先膨胀再腐蚀的结果,闭运算的物理结果会平滑对象的轮廓,同时也将狭窄的缺口连接起来形成细长的弯口。

通过对图8图像分析,我们发现血管结构已经算是提取出来了,但通过细致一点的观察,发现血管有些细小部分存在断裂现象,故而需要用闭运算将它们连接起来。

结果如图9:    
                                                            

图9:闭运算

4.9 阈值处理

通过图9的分析上看,图像已经接近我们的预期目标了。但通过细致的分析,图像存在一些很小的,零散的小线条,为了更好的去除它们,通过阈值处理将它们去除。阈值化的方法有很多,我们选用滞后性阈值法。

即对图像取两次阈值化,一次取较小的,一次取较大的阈值化。再用小的作为模板对另一个图像进行膨胀重建,最终得图如下:

图10:眼底血管

5. 实验结果

从以上三幅结果图中 可以看出该方法对眼底的大部分血管都能进行有效提取, 但是通过细微的比较之后发现本算法还有待有待进一步的改进和完善。在较细的血管提取上在较细的血管提取上可能存在断裂,或者消失,无法进行有效提取可能存在断裂,或者消失,无法进行有效提取等等。

基于形态学眼底血管提取相关推荐

  1. 零基础基于U-Net网络实战眼底图像血管提取

    文章目录 1 前言 2 血管提取任务概述 3 U-Net架构简介 4 眼底图像血管分割代码 5 结果评估可视化(ROC曲线) 6 改进U-Net网络完成眼底图像血管提取任务思路 1 前言 本文基于U- ...

  2. 基于PaddleSeg实现眼底血管分割——助力医疗人员更高效检测视网膜疾病

    点击左上方蓝字关注我们 [飞桨开发者说]郑博培,北京联合大学机器人学院2018级自动化专业本科生,飞桨开发者技术专家PPDE,深圳市柴火创客空间认证会员,百度大脑智能对话训练师 项目背景 研究表明,各 ...

  3. 基于PaddleSeg的眼底血管分割——使用飞桨助力医学影像分析

    基于PaddleSeg的眼底血管分割--使用飞桨助力医学影像分析 一.项目背景 研究表明,各类眼科疾病以及心脑血管疾病会对视网膜血管造成形变.出血等不同程度的影响.随着生活水平的提高,这类疾病的发病率 ...

  4. 基于形态学处理的车牌定位和车牌提取matlab仿真

    UP目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 车牌识别技术是利用计算机等辅助设备进行的自动汽车牌照自动识别就是在装备了数字摄像设备和计算机信息管理系统等软硬件平台的基础之上,通过对 ...

  5. HALCON示例程序check_fish_stick_dimension.hdev生鱼棒尺寸测量;基于形态学的像素级精度尺寸测量

    HALCON示例程序check_fish_stick_dimension.hdev基于形态学的像素级精度尺寸测量 示例程序源码(加注释) 关闭实时显示更新 dev_update_off () 关闭窗口 ...

  6. tensorflow2实现unet, 完成眼底血管分割任务

    向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习  公众号:datayx retina-unet 该项目使用U-Net完成眼底血管分割任务, 主要包括以下内容: 视网 ...

  7. Matlab水果识别——基于形态学处理的水果识别

    文章目录 概述 一.原理简介 二.实验内容 1.完整代码 2.图片测试 最后 概述 基本思想就是用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到图像分析和识别的目的.主要涉及到的运算有:膨 ...

  8. MICCAI2021 Contest : GAMMA任务一:<基于多模态眼底影像的青光眼分级>官方Baseline代码解释

    目录 任务介绍 官方baseline地址 网络结构 网络输入 Code import DataLoader dataset类 进行的transforms NetWork 评估指标 Train & ...

  9. 基于形态学运算的图像变换

    一.形态学滤波对图像进行腐蚀.膨胀运算 1.概念及原理 (1)腐蚀和膨胀是形态学中最基本的运算,而结构元素又是数学形态学中最基本的工具.结构元素可以简单理解为像素的结构以及一个原点.使用形态学滤波就是 ...

最新文章

  1. socketmq 设置队列大小_C++编程实例:面向对象的整形队列实现
  2. 2021-09-26
  3. 快头条月增迅猛超微视 三四线城市“流量炼金”的上限在哪?
  4. vue中如何关闭eslint检测?
  5. 51nod 1021 石子归并 (动态规划 简单代码)
  6. OpenStack安装Neutron组件最后进行验证后发现Metadata agent ct节点不显示
  7. C - And and Pair
  8. jQuery实现radio第一次点击选中第二次点击取消功能(转)
  9. ctags 基本使用方法
  10. 算算奖学金(洛谷P1051题题解,Java语言描述)
  11. 信息安全工程师笔记-国产密码算法(国密)概念
  12. Easytrader踩坑之旅(二)
  13. 鲍尔默先生,请拿出证据
  14. 批量导入手机通讯录_大批量手机号导入通讯录软件
  15. python把utf8编码转为gbk_Python:UTF-8编码转换成GBK编码
  16. Three.js入门——画星空(star field)
  17. Python爬取某宝菠萝数据,并可视化分析销量
  18. CVPR2020 | 即插即用!将双边超分辨率用于语义分割网络,提升图像分辨率的有效策略...
  19. 恶意融资与上市公司的股权结构研究
  20. 神经网络系统技术是什么,神经网络系统技术应用

热门文章

  1. JAVA 设置银行账户类Acount
  2. 如何删除 excel 单元格内的换行符
  3. Kubernetes是啥?用它写个hello,world啊!
  4. 霸屏浏览器使用说明书
  5. ArcGIS Python arcpy 批量创建SDE空间索引
  6. cad单位_CAD制图初学入门常用技巧汇总,CAD零基础也不怕!
  7. 信息系统项目管理师高级论文如何准备?
  8. 计算机科学与技术考研北京工业大学分,22考研——北京工业大学电子信息专业考研考情分析...
  9. CF-Edu101-D-Ceil Divisions(构造)
  10. STM32 HAL库串口同时收发,接收卡死?