MATLAB实现fundus-vessel-segmentation-tmbe程序

本文档详细介绍了如何在MATLAB 2019a环境下修正并运行Orlando的血管分割程序,涉及基础设置、错误处理及源代码修改。在运行时遇到的错误包括:窗口大小手动设定为3,quadprog函数不兼容问题,以及保存分割结果的函数缺失。通过修改特定文件和设置,成功解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该程序是Orlando发表的论文中实现的血管分割的程序。使用该程序要引用原文哦。

Orlando, J.I., Prokofyeva, E. , Blaschko, M.B.: A discriminatively trained fully connected conditional random field model for blood vessel segmentation in fundus images. Biomedical Engineering, IEEE Transactions on (2016)

Orlando, J.I. , Blaschko, M.B.: Learning fully-connected CRFs for blood vessel segmentation in retinal images. In: MICCAI. (2014) 634–641

源代码在GitHub上下载。

我电脑上安装的是MATLAB2019a,程序包中有一个库在2019版本中更改了,所以执行时出错,在文章后面介绍。

我修改后的程序包下载地址:https://download.youkuaiyun.com/download/icecreamdinner/19662236

基础修改

程序包中有“user_manual.pdf”文档,先按照该文档的操作步骤建立文件夹、更改路径等操作。

1. 设置一个输入文件夹“img_input”,在该文件夹下建立DRIVE数据集文件夹,具体路径如下图所示:

2. 设置一个输出文件夹“img_store”;

3. 打开“script_experiments_massive.m”文件,

     增加添加路径的语句,例如:“addpath('./Configuration');”把所有程序包的文件夹路径都添加到搜索路径中去;

     变量datasetsNames是输入文件夹下数据集的名字,我只测试了DRIVE数据集,所以将其他数据集注释,只保留DRIVE数据集;

     指定输入、输出文件夹路径:注意“\”符号

rootDatasets = 'E:\DR\06-Vessels\img_input\';     %输入文件夹路径
rootResults = 'E:\DR\06-Vessels\img_store';        %输出文件夹路径

4. 打开程序包中Configuration文件夹下的“getConfiguration_GenericDataset.m”文件,该文件是配置config变量的重要文件,模型的相关参数设置可以在此文件中修改。首先需要指定训练集路径:

    config.scale_factor = estimateScaleFactor('E:\DR\06-Vessels\img_input\DRIVE\training', config.training_data_path);

出错

1. 

在“get_lineresponse.m”文件中,把W改成3了。W表示窗的大小,本来是自动生成的,这里手动设置为3了。

2.

出现NaN和Inf是由于config结构体变量中有些数据生成错误了,主要是在修改路径时出现错误,系统没有找到相关数据的存储位置,仔细检查自己的路径是否正确。

3.

这是在使用支持向量机进行二次规划时,调用了quadprog.m函数文件时出现错误,原因是该程序包调用的quadprog.m文件与matlab2019a中的quadprog函数文件不同,需要更改部分语句。

在bundler函数中修改
      state.quadProgOpts = optimset('Algorithm', 'interior-point-convex', 'Display', 'off', 'MaxIter', 1000);
      % state.quadProgOpts = optimset('Algorithm', 'active-set', 'Display', 'off', 'MaxIter', 1000);
把下面语句改成上面的,因为2011之后的优化函数不支持active-set了。
具体参考以下网址:https://blog.youkuaiyun.com/qq_42165292/article/details/104802779

4.

    我在程序包中没有找到SaveSegmentations函数,不知道放哪了,不过这个函数就是存储了分割好的血管图、config文件、模型、存储位置这些信息,使用save函数存储为mat文件也可以,

         save('vessel_segment.mat','root','config', 'results', 'model') ;      

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icecreamdinner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值