问题标签 [watershed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1384 浏览

java - OpenCV中分水岭分割的图像格式不匹配

我正在尝试使用 OpenCV 的 Java 包装器实现分水岭分割。

这就是我正在做的事情:

就在我调用“分水岭”时,我看到一个错误,内容如下:

我明白了,OpenCV 正在寻找一个 32 位 1 通道文件作为输出。

我尝试了所有可能的组合:

  • CvType.CV_32FC1,

  • CvType.CV_32F,

  • CvType.CV_32S,

  • CvType.CV_32SC1,

  • CvType.CV_8UC1,

  • CVType.CV_16UC1

... 他们全部。

错误是有弹性的。它拒绝离开。

请帮忙。

提前致谢。

0 投票
4 回答
1956 浏览

image-processing - 在图像中寻找能量最小的路径

考虑一个包含灰度值的二维数组,如下图所示:

在此处输入图像描述

我想找到红点之间的最佳路径。如果您认为明亮区域是“高”,而黑暗区域在海拔意义上是“低”,那么我想要一条沿着从一个标记到另一个标记的黑暗“山谷”延伸的线。

我知道的两类算法是:

  1. 基于图像处理的“自下而上”操作(骨架化、分水岭、最终侵蚀等)
  2. 迭代最小化,“自上而下”操作(活动轮廓)。

我的问题是:

是否有任何典型且定义明确的操作或算法来解决这个问题,或者我应该从上面提到的一些通用技术中自己创建一个?

我会先尝试骨架化,但我不知道如何在灰度图像上执行它。而且,如果我要尝试一个活动轮廓,我想知道对于类似于所示图像的良好内部和外部能量函数(我怀疑图像梯度可以充当矢量场)。

原始数据 (CSV) 在这里

编辑:这是我在实现接缝雕刻算法(如维基百科中所述)和 Shoham 建议以强制路径通过标记后的工作代码:

0 投票
1 回答
200 浏览

python - 如何找到按分水岭分割的区域的中心点?

我正在使用 scikit (skimage) 中的分水岭算法来分割我的图像,然后我使用 ndimage 库中的函数 find_objects 检测分割的对象。返回的类型是一个切片元组,如下所示:(slice(0L, 45L, None), slice(460L, 519L, None))。我需要在由 wathershed 分割的区域的中心点制作白色,那么如何从 slice 对象中找到它?有没有更简单的方法来找到这一点?

0 投票
0 回答
257 浏览

opencv - 图像分割分水岭

我的工作是从图像中的一组叶子中找到单个叶子。约束是我必须分割的单个叶子的形状必须完整。我使用了基于标记的分水岭变换。

图像1

我得到这个输出

我使用膨胀和腐蚀创建了标记来查找背景和前景。

从这张图片中,我如何分割单个叶子?我要走什么步骤?

0 投票
2 回答
65 浏览

r - 使用 R 为一行中的标识符提取数据并将其放入新列中

我有一些使用 ArcGIS 获取的数据,我想通过流域标识符(例如 HUC_8=1404106)构建一个数据库。数据包含流域标识符 (HUC_8)、流域面积、土壤类型和土壤面积。分水岭标识符的列出次数与土壤类型一样多。我想创建一个基于流域的数据库(标识符只在列中出现一次),并在不同列中按类型提取土壤面积。我附上了数据的一个子集,希望它是清楚的。我对 R 有点陌生,但我觉得这可以通过 for 循环来完成。知道如何做到这一点将非常有帮助,因为我经常使用 GIS,但想在 R 中执行更多分析。

0 投票
1 回答
583 浏览

python - 如何为流域分割创建多边形

我有一个图像,并想使用标记控制的分水岭创建该图像的分段多边形。我编写了以下代码,但我无法分离相互连接的对象并创建对象的多边形。

如何解决这些问题?非常感谢你的帮助。

原始图像

分段后的图像

0 投票
2 回答
4352 浏览

matlab - Matlab:分离连接的组件

我正在解决检测硬币的图像处理问题。

我在这里有一些像这样的图像: 二进制组件

并想将错误连接的硬币分开。
我们已经尝试了 MATLAB 主页上所述的分水岭方法:

特别是因为第一个例子正是我们的问题。

但相反,我们得到了一个非常混乱的分离,如您在此处看到的:

在此处输入图像描述

我们已经使用 Extrema 参数提取了硬币的区域,regionprops并且只在需要的区域上投射了分水岭。

我将不胜感激任何有关该问题的帮助,甚至是另一种将其分开的方法。

0 投票
1 回答
3671 浏览

opencv - 使用分水岭算法计算对象数量 - Scikit-image

我正在尝试使用分水岭分割来查找给定图像中的对象数量。例如考虑硬币图像。在这里,我想知道图像中的硬币数量。我实现了Scikit-image文档中可用的代码,并对其进行了一些调整,得到的结果与文档页面上显示的结果相似。

在详细查看代码中使用的函数后,我发现 ndimage.label() 还返回图像中找到的唯一对象的数量(在它的文档中提到),但是当我打印该值时,我得到 53,这是非常高的与实际图像中的硬币数量相比。

有人可以建议一些方法来查找图像中的对象数量。

0 投票
0 回答
142 浏览

image-processing - 如何在 MATLAB 中使用标记控制分水岭分割从输入的二进制指纹图像中提取毛孔

我正在从二进制指纹图像中提取毛孔,在使用分水岭分割时,我设法获得了梯度图像,但现在我想从脊(指纹上的线条)中提取毛孔(白色斑点)。我该怎么做去吗?

0 投票
2 回答
3308 浏览

image-processing - 图像分割、分水岭、瀑布、p算法

我想知道是否有人知道任何当前可用的使用瀑布方法或 p 算法进行分割的包。我查看了 github、CRAN 和 Fiji,尽管发表的文献讨论瀑布和 P 算法方法的好处可以追溯到 2009 年,但我没有发现任何东西。现在我正在对一些图像使用分水岭分割,但一直遇到过度分割的问题,似乎这其他两种方法可以解决其中一些问题。

编辑:以下是我参考的一些论文: