问题标签 [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 回答
359 浏览

matlab - 分水岭算法设置删除所有连接的组件

我正在使用分水岭算法来尝试分割接触核。一个典型的图像可能看起来像:在此处输入图像描述 或者这样:在此处输入图像描述

我正在尝试使用以下代码应用分水岭算法:

C = ~BW;在整个图像变暗之后无论出于何种原因。这个相同的代码块已经在少数其他图像上工作过,所有这些图像都更“坚固”或不像这些那样粗糙。但是,我认为我用BW = bwdist(BW) <= 1;. 我已经尝试了很多,但我真的不知道发生了什么。任何帮助都会很棒!

附言。这是之后的图像BW = bwareaopen(BW,8); 图片说明在这里

0 投票
1 回答
313 浏览

matlab - 分水岭算法中的负值导致黑色图像

我正在使用分水岭算法来尝试分割接触核。一个典型的图像可能看起来像:在此处输入图像描述 或者这样:在此处输入图像描述

我正在尝试使用以下代码应用分水岭算法:

C = ~BW;整个图像变暗之后。我相信这是因为图像像素都是 -inf 或一些较小的负数。这是有办法解决这个问题的,如果是这样,我可以在我的代码中进行哪些更改以使该算法正常工作?我已经尝试了很多,但我真的不知道发生了什么。任何帮助都会很棒!

0 投票
1 回答
781 浏览

matlab - 正确使用 Matlab 分水岭算法分割细胞

试图让分水岭算法在我的图像上正常工作时遇到了很多麻烦。在各种在线教程中,他们似乎总是使用同样复杂/模糊的图像,所以我不确定我的有什么问题。我已经对此发表了一些参差不齐的帖子,但想真正澄清并提出一般性问题。也就是说,我使用的图像如下:

但是,当我尝试应用一种分水岭算法时:

它似乎永远不会起作用。无论出于何种原因,它都确定每个单元格由一堆较小的单元格组成: 在此处输入图像描述

我试图通过将分段组件聚集在一起来解决这个问题,BW = bwdist(BW) <= 3;这样图像就不会被碎片化:

在此处输入图像描述

如第一张图所示,应该有 3 个单元格,虽然分水岭确实识别出左侧的两个不同单元格——但它的注册量超出了应有的范围(即使在结块之后)。在我尝试了一切之后,我没有取得太大进展,所以任何帮助或建议将不胜感激。

在经历了完整的分水岭程序后,我最终得到了如下最大值:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
1060 浏览

python - 分水岭后保存二值图像

我在将分水岭分割后的图像存储为二进制图像时遇到问题。当我用 cmap=plt.cm.gray 绘制分割时,它显示一个二进制图像,但我不知道如何存储图像(不显示它)。

0 投票
1 回答
1313 浏览

image-processing - 使用分水岭、skikit 图像计算细胞和细胞核的数量

我正在尝试量化大量图像数据。每个图像都有细胞和细胞核。必须做的以示意图形式表示为“我需要的”:

我需要的

示例图像显示在“原始图像”中:

原始图像

我找到了一个在线分水岭算法程序来计数细胞,但我无法计算细胞内部(和外部)的细胞核数量。

这是我用来从原始图像中计数细胞的程序

我应该如何计算细胞内的细胞核以及整个图像中的细胞核数量?另外,如果你有另一个更好的细胞计数程序,请告诉我。

0 投票
1 回答
416 浏览

java - 如何使用 OpenCV 的分水岭变换实现过度分割?

我正在尝试通过使用 Java 中基于标记的 OpenCV 分水岭实现来过度分割图像。

我的想法是搜索所有局部最小值并将其用作标记。不幸的是,分水岭需要一个 CV_8U 类型的矩阵作为标记输入,因此,我不能真正得到超过 255 个标记。

有没有人有解决这个问题的方法或使用 OpenCV 实现过度分割的其他解决方案?

左边的原始图像,中间的标记(大约 740 个),右边的分割结果(只有 255 个区域)

0 投票
1 回答
43 浏览

matlab - 在大型矩阵中获取后续 ID 的最有效方法

在执行 3D CT 的分水岭后,我只选择小于某个值且大于另一个值的粒子。然而,作为最终输出,我需要一个仅包含连续 ID 的矩阵。我的实现如下:

我有一个 1226x1226x3600 矩阵,所以性能真的很重要。一个循环大约需要。5秒。这很可能不是实现目标的最有效方法,但目前我没有更好的想法。你?

0 投票
1 回答
129 浏览

c++ - 流域边界紧紧围绕一个区域

我试图在 OpenCV 中平均生成两个 blob。为了实现这一点,我计划对通过以下方式预处理的图像使用分水岭算法:

我对结果的问题是计算的边界(几乎)总是与两个斑点的共同区域相邻。以下是图片:

输入标记(黑色 = 0,灰色 = 1,白色 = 2) 输入标记

分水岭输入图像(距离变换结果),结果轮廓以红色绘制: 带绘制轮廓的分水岭输入图像

我希望边界沿着输入的最大强度区域(即沿着不同区域的中间)。相反(如您所见),它主要围绕标记为 2 的区域,稍微移动以触摸背景(标记为 1)。我在这里做错了什么,还是我误解了分水岭的工作原理?

0 投票
0 回答
551 浏览

python - 在Opencv中识别照明不均匀的物体

我有一张图片

http://imgur.com/a/VXG6h (egg1.png)

我想只识别(提取)鸡蛋。

我的代码主要基于http://docs.opencv.org/3.2.0/d3/db4/tutorial_py_watershed.html import numpy as np import cv2

但是,我在使用白色背景以及“脱粒”图像中显示的鸡蛋的闪亮部分时遇到了很大的麻烦。

我如何“均匀”出鸡蛋的不均匀颜色(去除渐变?)?

这是我的代码的结果http://imgur.com/a/cdoWl

任何帮助将不胜感激,并提前致谢

0 投票
2 回答
3097 浏览

matlab - MatLab - 分割以分离图像中的触摸对象

我正在使用功能 regionprops 来检测无人机拍摄的图像上的树木数量。 原始图像

首先,我使用 Blue NDVI 移除了地面: 图片BNDVI

带阈值的图像: 带阈值的图像

然后我使用函数 regionprops 来检测图像上的树木数量: 区域道具

但是区域 15 存在问题,因为该区域上的所有树都是连接的,并且它检测为一棵树。我尝试使用Watershed Segmentation分离该区域的树木,但它不起作用:

流域分割

我这样做是错误的吗?有没有更好的方法来分离树木?

如果有人可以帮助我解决这个问题,我将不胜感激。这是没有地面的区域 15: 15区

如果有帮助,这里是梯度幅度图像: 在此处输入图像描述