检测植物图片中的所有分支

时间:2016-01-24 02:33:46

标签: image matlab image-processing computer-vision image-segmentation

我想知道一些可以检测下图中所有绿枝的东西

enter image description here

目前我开始应用Frangi过滤器

   options=struct('FrangiScaleRange', [5 5], 'FrangiScaleRatio', 1, 'FrangiBetaOne', 1,...
 'FrangiBetaTwo', 7, 'verbose',true,'BlackWhite',true);
[outIm,whatScale,Direction] = FrangiFilter2D(double(img), options);

Frangi过滤器的输出如下

enter image description here

接下来是Hough Transform来检测所有行

[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);

输出就是这个

enter image description here

我能尝试与这些技术分开的任何线索?

1 个答案:

答案 0 :(得分:2)

您可以使用基于颜色的高斯混合模型(GMM)来分割绿色分支。适用于绿色分支的2个GMM模型1,以及图像中其余对象的第2个。但要初步确定你必须首先标记一些手动涂鸦,以便知道GMM如何分支和其他看起来像。在根据涂鸦拟合两个GMM模型后,您可以找到两个GMM模型的所有像素的可能性,并在此基础上将您分为两个区域分支和非分支。涂鸦的标记应该涵盖图像中的大部分颜色变化。