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

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

我想知道可以检测下图中所有绿色 Twig 的东西

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

接下来是霍夫变换来检测所有的线

[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

除了这些技术之外,我还能尝试什么?

最佳答案

您可以使用基于颜色的高斯混合模型 (GMM) 来分割出绿色分支。拟合 2 个 GMM 模型,第 1 个用于绿色分支,第 2 个用于图像中的其余对象。但是要初始化它,您必须首先标记一些手动涂鸦,以了解 GMM 分支和其他内容的外观。在根据涂鸦拟合两个 GMM 模型后,您可以找到两个 GMM 模型的所有像素的可能性,并在此基础上将您分为两个区域分支和非分支。涂鸦的标记应涵盖图像中的大部分颜色变化。

关于image - 检测植物图片中的所有分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34971579/

相关文章:

image - gitlab ci yml 图像和服务机制?

javascript - Lightbox 2功能齐全,想要查看的图像全尺寸吗?

c++ - opencv/c++ 中适当的阈值函数

java - Matlab 可以生成 Java 源代码吗?

matlab - 如何从 MATLAB 执行 dos 命令并立即将控制权返回给 MATLAB(不生成 dos 窗口)

python - 如何填充数组中的值才能得到这个?

multithreading - 将数据并行写入磁盘?

Android以编程方式平铺图像作为背景

php - Rackspace 云文件 : Image Upload to rackspace cloud files using PHP

c - fftw3 逆变换不起作用