问题标签 [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.
matlab - 分水岭 - 灰度图像中的局部最小值
我有一组灰度图像,需要在其中找到局部最小值。我正在 Matlab 中编写代码,并且正在寻找有关如何构建算法的建议:我需要计算梯度还是可以只使用该watershed
函数?
这是我用来进行第一次分析的代码(下图):
直观地说,我希望在箭头指向的像素中找到区域最小值:
c++ - IRM 图像的分水岭
我想应用一种分割算法(由标记分水岭)。我在这段代码中有问题。它仅适用于一张图片 (lena.jpg)
我想将它与 irm 图像一起使用,但它不起作用。
我认为问题在于图像 RGB 和灰色。
image - 如何有效地为该显微图像创建 BW 蒙版?
所以有些背景。我的任务是编写一个 matlab 程序来计算可见光显微图像中酵母细胞的数量。为此,我认为第一步将是细胞分割。在获得真正的实验图像集之前,我开发了一种算法,使用了一个利用watershed的测试图像集。看起来像这样:
分水岭的第一步是为单元生成 BW 掩码。然后我会生成一个 bwdist 图像,其中包含从 BW 掩码生成的强加局部最小值。有了它,我可以轻松生成分水岭。
如您所见,我的算法依赖于成功生成 BW 掩码。因为我需要从中生成 bwdist 图像和标记。最初,我按照以下步骤生成 BW 掩码:
- 生成图像的局部标准差sdImage = stdfilt(grayImage, one(9))
- 使用 BW 阈值生成初始 BW 掩码binaryImage = sdImage < 8;
- 使用imclearborder清除背景。使用其他一些代码将边框上的单元格添加回来。
背景完成。这是我的问题
但是今天我收到了新的真实数据集。图像分辨率要小得多,光照条件与测试图像集不同。颜色深度也小得多。这些使我的算法毫无用处。就这个:
使用stdfilt未能生成良好的干净图像。相反,它会生成这样的东西(注意:我已经调整了stdfilt的参数函数和 BW 阈值的参数,以下是我能得到的最佳结果):
如您所见,细胞中心有一些亮像素,它们不需要比膜更暗。这导致 bw 阈值生成如下内容:
bw 阈值处理后的新 bw 图像具有不完整的膜或分段的细胞中心,使它们不适合其他步骤。
我最近才开始图像处理,不知道应该如何进行。如果您有想法,请帮助我!谢谢!
为了您的方便,我附上了一个来自 Dropbox 的链接,用于获取图片的子集
c++ - OpenCV 分水岭分割遗漏了一些对象
我的代码与本教程相同。当我看到使用后的结果图像时cv::watershed()
,有一个我想找出的对象(右上角),但它不见了。使用后图像中确实有六个标记cv::drawContours()
。这是否正常,因为存在分水岭算法的不准确性?
这是我的代码的一部分:
原图:
之后的结果watershed
:
您可以在此处找到原始图像、中间图像和结果图像:
matlab - 在matlab中分水岭分割后提取叶子
在我应用分水岭分割后,我想从图像中提取剩余的叶子,我只想得到没有像 image-2 这样的背景。请你帮帮我。非常感谢。我还在下面附上了我的代码。我是stackoverflow的新手,因此我不允许发布图像。我在mathworks中问过同样的问题,如果你愿意的话,你可以从那里检查图像。
提前非常感谢。
http://www.mathworks.com/matlabcentral/answers/237106-extracting-leaf-from-background
图一:分水岭分割后(彩色版):
image-2:要成为的图像;
我的代码:
c++ - 如何在 OpenCV 中分割分水岭分割的标签?
我在 OpenCV 中做了一个分水岭分割,但我想分割这些片段。我考虑过根据每个段的 RGB 值来拆分它。因为不同段的 RGB 值会有所不同。但我似乎无法找到如何做到这一点。任何人都知道如何根据 RGB 值进行这种拆分?或者任何其他分割分水岭段的方法?
我想要的是将两个不同的颜色区域(这张照片中的棕色和粉红色)分成两个图像或窗口。
c - cvWatershed 不支持的格式或格式组合
我正在使用 C on Code::Blocks 中的 OpenCV 2.4.11,特别是通过 O'Reilly 的《Learning OpenCV》一书。关于分水岭算法的部分有点短,所以我想我会玩一下它,看看它是如何工作的。但是,每次调用该函数时,都会出现以下错误:
OpenCV 错误:cvWatershed 中不支持的格式或格式组合(仅支持 32 位、1 通道输出图像)
到目前为止,我的程序非常简单:
我已经尝试将标记和 markmat 作为 cvWatershed 的第二个参数,以及其他一些东西(特别是标记上绘制有 markingstemp 的轮廓的标记),但每次我得到同样的错误。谁能告诉我我做错了什么?