【发布时间】:2016-04-30 12:31:01
【问题描述】:
我想知道一些可以从下图中检测到所有绿色分支的东西
目前我开始应用 Frangi 过滤器
options=struct('FrangiScaleRange', [5 5], 'FrangiScaleRatio', 1, 'FrangiBetaOne', 1,...
'FrangiBetaTwo', 7, 'verbose',true,'BlackWhite',true);
[outIm,whatScale,Direction] = FrangiFilter2D(double(img), options);
Frangi过滤器的输出如下
这之后是霍夫变换来检测所有的线
[H,theta,rho] = hough(outIm,'Theta',-90:1:89);
P = houghpeaks(H,100,'threshold',ceil(0.3*max(H(:))),'NhoodSize',[21 21]);
lines = houghlines(outIm,theta,rho,P,'FillGap',10,'MinLength',100);
输出是这样的
除了这些技术之外,我还能尝试什么?
【问题讨论】:
-
如果你想要绿色的分支,那么你需要通过颜色阈值来加星以检测绿色部分。然后,您可以应用过滤器和霍夫变换。
-
这是我的第一步。我没有提到它,因为它很明显
-
不那么明显,因为 Frangi 过滤器也给出了棕色树枝轮廓。所以阈值化失败了。
-
在这里设置
'BlackWhite',false可能会有帮助。
标签: image matlab image-processing computer-vision image-segmentation