MATLAB环境下基于图像处理的视网膜图像血管分割

预防糖尿病对每个人的健康至关重要,而糖尿病的早期症状在眼底视网膜血管会有所体现,如静脉血管扩张、轻度弯曲等。高血压作为常见疾病,在中国有多达2.45亿的患者。高血压的病情也会在眼底视网膜血管上有所体现,如交叉压迫征等反映着病情的严重程度。而青光眼等眼科疾病的诊断,更离不开视网膜血管的特征。作为人体唯一无需手术便可观察到的较深血管,眼底视网膜血管越来越受到医学研究与临床的重视。在产学研结合的大潮下,对眼底视网膜图像中血管与背景的分割也进入了计算机视觉研究人员的视野。

人体视网膜位于眼球壁的内层,眼底视网膜图像中眼底血管粗细不一、纹路复杂、背景与血管对比度低及病变区域的干扰,造成血管与背景分割有较大的难度。传统眼底视网膜图像中血管的分割由医生来手动分割,不仅受医生水平和状态的影响,也会耗费大量的时间,不能满足大规模血管图像分割的要求。随着图像处理技术的发展,利用计算机实现高效、稳定和精确的眼底视网膜图像分割算法,在相关疾病上会提高医生的诊断效率,同时也为学者在医学图像领域的继续深入研究提供了有价值的参考。由此,实现对微血管与背景的分割,助力医生的医疗诊断成为了图像领域的重要研究方向。常见的眼底视网膜图像分割结果中,血管像素被分割为白色,背景像素被分割为黑色。

综上,眼底视网膜血管的特征在疾病预防与诊断中有着重要的作用,因此对眼底图像中血管与背景的分割可提高医生的临床诊断效率。由于设备及环境的影响,在采集眼底视网膜图像的过程中难免会有光照不均、局部噪点等瑕疵,这对传统手工分割图像中的血管与背景带来麻烦,既影响了精度又拖慢了速度,对医疗人员造成大量的负担。视网膜血管本身走向复杂,尺寸不一,特别是末端的细微血管难以辨认,有着较低的对比度,这对医疗人员本身的专业水平也提出了过硬的要求。实现自动分割视网膜图像中血管与背景的算法便有了不可忽视的价值,为医生的后续诊断提供了便利。而由于标注成本高,造成眼底视网膜血管图像的数据集较少,如何在现有的数据集上训练出稳定、高效的网络模型是一个艰巨的挑战。

因此提出一种MATLAB环境下基于图像处理的视网膜图像血管分割方法,主要步骤如下:

Preprocessing:

  • Extract mask image
  • Extract green channel
  • CLAHE contrast enhancement
  • Replace black ring
  • Top-hat transform

Vessel Extraction

  • Otsu thresholding
  • Remove small regions
  • Thick vessel extraction
  • Thin vessel extraction
  • Create the final image using the last two images

Compare my result and ground truth

  • Green: same ture in mr(my result) and gt(ground truth)
  • Red: one in mr and zero in gt
  • Purple: Zero in mr and one in gt

部分代码如下:

复制代码
close all; clc;
im_rgb = im2double(imread('DRIVE/Test/images/03_test.tif'));
im_mask = im_rgb(:,:,2) > (20/255); % Extract green channel
im_mask = double(imerode(im_mask, strel('disk',3)));
figure
subplot(2,2,1),imshow(im_rgb),title('general image');
subplot(2,2,2),imshow(im_mask),title('Mask after erosion');
im_green = im_rgb(:,:,2);
subplot(2,2,3),imshow(im_green),title('Green Channel')
% CLAHE
im_enh = adapthisteq(im_green,'numTiles',[8 8],'nBins',128);
subplot(2,2,4),imshow(im_enh),title('CLAHE enhancement')

出图如下:

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任
《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
Lear4 小时前
【链表】LeetCode 142.环形链表
算法
CoovallyAIHub4 小时前
2025目标检测模型全景图:从RF-DETR到YOLOv12,谁主沉浮?
深度学习·算法·计算机视觉
澪吟4 小时前
算法性能的核心度量:时间复杂度与空间复杂度全解析
数据结构·算法
sight-ai4 小时前
OpenRouter vs. SightAI:统一入口,还是统一“智能体验”?
人工智能·开源·大模型·api
道可云4 小时前
政务AI大模型落地:聚焦四大场景,提升服务效率
人工智能·政务
咪咪渝粮4 小时前
108. 将有序数组转换为二叉搜索树
算法·leetcode
机器之心4 小时前
刚刚,Thinking Machines Lab博客提出在策略蒸馏,Qwen被cue 38次
人工智能·openai
lzptouch4 小时前
蚁群(Ant Colony Optimization, ACO)算法
人工智能·算法·机器学习
苏纪云5 小时前
算法<C++>——双指针操作链表
c++·算法·链表·双指针
louisdlee.5 小时前
扫描线1:朴素扫描线
数据结构·c++·算法·扫描线