Frangi 滤波器用作边缘检测器
Frangi filter working as an edge detector
我试图使用 Frangi 滤镜从植物图像中提取所有的茎。我想利用 属性 每个茎比叶子具有更多类似容器的特征。 Using this paper as reference。
我的输入图片是这个
这是我的 matlab 代码片段
options=struct('FrangiScaleRange', [1 3], 'FrangiScaleRatio', 1, 'FrangiBetaOne', 0.5,...
'FrangiBetaTwo', 2, 'verbose',true,'BlackWhite',true);
[outIm,whatScale,Direction] = FrangiFilter2D(double(rgb2gray(img2)), options);
outIm = uint8(outIm/max(outIm(:))*256);
这是输出
我知道还有其他方法可以完成此任务,但我只是想知道为什么这种方法不起作用。
Frangi 过滤器测量图像区域的拉长程度,因此它将血管检测为 "long" 而不是 "blobby" 的对象。论文中的示例图像具有又窄又直的茎(像你的)和非常圆的叶子(不像你的)。因为叶子比纸上的叶子更长更薄,所以第一步的算法效果不佳。您的选择是:
(a) futz 参数(在 matlab 中,我相信它们是 FrangiAlpha 和 .FrangiBeta 参数)。这些默认设置为 0.5,我认为您需要将它们设置得更低(这样您就必须更长更细才能算作茎)。
(b) 就像@dasdingonesin 说的,这篇论文有很多步骤,后面的 Hough Filter 步骤也会鼓励比 Frangi 过滤器考虑的更大尺度的长连续线。
就 Frangi-filter 而言,如前所述,您的茎和叶都是容器状的,因此您不能简单地使用过滤器输出来区分它们。
然而,您可以:(i) 选择更好的尺度(大致适合您要检测的结构的尺度)和 (ii) 尝试不同的参数。
我试了一下,给出了尺度 5 10 20 30
和 Frangi 参数 beta=0.5
和 c=100
[Frangi 等人:多尺度血管增强过滤,MICCAI 1998]
这是我得到的:
原始图像的逻辑单位缩放 http://i.stack.imgur.com/s6wuE.jpg,在 Photoshop 中转换为 gray-8bpp。
您可以观察到以下内容。叶子比茎给出更高尺度的反应。也许这会是一个线索。
编辑:
我看过 http://i.stack.imgur.com/eZwxg.png。 "edge detector"-对亮叶的影响是由于 Frangi 理论对二维的拟合不足:
- 3-D 血管:血管方向的特征值很小,其他两个正交方向有两个高度负的特征值。
- 二维血管:血管方向的小特征值,垂直于它的一个高度负的特征值。
相反
- 三维板:一个高负特征值,两个小特征值。
我试图使用 Frangi 滤镜从植物图像中提取所有的茎。我想利用 属性 每个茎比叶子具有更多类似容器的特征。 Using this paper as reference。
我的输入图片是这个
这是我的 matlab 代码片段
options=struct('FrangiScaleRange', [1 3], 'FrangiScaleRatio', 1, 'FrangiBetaOne', 0.5,...
'FrangiBetaTwo', 2, 'verbose',true,'BlackWhite',true);
[outIm,whatScale,Direction] = FrangiFilter2D(double(rgb2gray(img2)), options);
outIm = uint8(outIm/max(outIm(:))*256);
这是输出
我知道还有其他方法可以完成此任务,但我只是想知道为什么这种方法不起作用。
Frangi 过滤器测量图像区域的拉长程度,因此它将血管检测为 "long" 而不是 "blobby" 的对象。论文中的示例图像具有又窄又直的茎(像你的)和非常圆的叶子(不像你的)。因为叶子比纸上的叶子更长更薄,所以第一步的算法效果不佳。您的选择是:
(a) futz 参数(在 matlab 中,我相信它们是 FrangiAlpha 和 .FrangiBeta 参数)。这些默认设置为 0.5,我认为您需要将它们设置得更低(这样您就必须更长更细才能算作茎)。
(b) 就像@dasdingonesin 说的,这篇论文有很多步骤,后面的 Hough Filter 步骤也会鼓励比 Frangi 过滤器考虑的更大尺度的长连续线。
就 Frangi-filter 而言,如前所述,您的茎和叶都是容器状的,因此您不能简单地使用过滤器输出来区分它们。
然而,您可以:(i) 选择更好的尺度(大致适合您要检测的结构的尺度)和 (ii) 尝试不同的参数。
我试了一下,给出了尺度 5 10 20 30
和 Frangi 参数 beta=0.5
和 c=100
[Frangi 等人:多尺度血管增强过滤,MICCAI 1998]
这是我得到的:
原始图像的逻辑单位缩放 http://i.stack.imgur.com/s6wuE.jpg,在 Photoshop 中转换为 gray-8bpp。
您可以观察到以下内容。叶子比茎给出更高尺度的反应。也许这会是一个线索。
编辑:
我看过 http://i.stack.imgur.com/eZwxg.png。 "edge detector"-对亮叶的影响是由于 Frangi 理论对二维的拟合不足:
- 3-D 血管:血管方向的特征值很小,其他两个正交方向有两个高度负的特征值。
- 二维血管:血管方向的小特征值,垂直于它的一个高度负的特征值。
相反
- 三维板:一个高负特征值,两个小特征值。