我的图像有噪音。我想从图像中删除所有背景变化,并想要一个普通的图像。我的图像是一个视网膜图像,我只想要血管和视网膜环仍然如何做到这一点? 1张图片是我的原始图片,2张图片是我想要的图片。
这是我复杂的噪音图像
答案 0 :(得分:4)
视网膜图像中有多种血管提取方法。
您可以在Review of Blood Vessel Extraction Techniques and Algorithms中找到不同方法的全面概述。它涵盖了许多方面的突出作品。
正如马丁所说,我们有Frangi等人的基于Hessian的Multiscale Vessel Enhancement Filtering。已被证明适用于2D和3D的许多类似船只的结构。有一个Matlab实现,FrangiFilter2D,适用于2D血管图像。概述未提及Frangi,但涵盖了使用基于Hessian方法的其他工作。我仍然建议尝试Frangi的容器方法,因为它既强大又简单。
除了基于Hesisan的方法,我建议研究基于形态学的方法,因为Matlab为形态学操作提供了良好的基础。在An Automatic Hybrid Method for Retinal Blood Vessel Extraction中提出了一种这样的方法。它使用形态学方法与开帽/闭合以及礼帽变换。然后,它通过模糊聚类和一些后处理来补充形态学方法。我没有尝试重现他们的方法,但结果看起来很稳固,论文可以在网上免费获得。
答案 1 :(得分:3)
这是一项简单的任务。
检测血液的边界 - 尝试edge( I, 'canny' )
并使用阈值参数来查看您可以获得的内容。
更高级的选项是使用this method for detecting faint curves in noisy images。
一旦你有相当好的血液边缘,你可以使用分水岭/ NCuts或边界敏感版本的meanshift进行分割。
一些指示:
- 血管似乎具有相对相同的厚度,就像文字笔触一样。您会考虑使用Stroke Width Transform (SWT)来识别它们吗?可以找到SWT的mex实现here
- 如果您有合理的边界,可以考虑this approach进行细分。
答案 2 :(得分:2)
我认为使用基于电子管的过滤器可以提供更多服务。有一个过滤器,它基于一个名为Frangi的人所做的工作,过滤器通常被称为Frangi过滤器。这可以帮助您识别视网膜中的脉管系统。过滤器已经为Matlab编写,公共版本可用here。如果您想了解基础研究的搜索:'多尺度血管增强',Frangi(1998)。另一个在同一领域工作的团队是Sato et.al. 很抱歉在最后一个链接中没有链接,我只能找到付费网站查看此计算机上的研究论文。
希望这有帮助
答案 3 :(得分:1)
这是我要做的。基本上是传统的图像算法来提取背景,然后从输入图像中减去它。这将为您提供无背景的理想结果。以下是步骤: