如何稳健地分割图像以正确计数模糊斑点?

我正在尝试对下面的图像(以及其他类似图像)进行鲁棒地分割以用于图像分析和斑点计数:

第一张图片

应该有900个独特的斑点。

我尝试调整对比度,锐化,阈值,动态局部阈值,侵蚀,这些和其他形态操作符的组合。

我已经能够接近了,但我仍然总是把blob连接在一起:

第二个图像

侵蚀二进制图像更有帮助,但我最终失去了一些较小的斑点。

是否有办法对大于特定大小的斑点进行侵蚀,所以我不会丢失较小的斑点? 我应该使用不同的侵蚀元素吗? 或者我只是以错误的方式来解决这个问题?


你应该做的是执行一个局部阈值,在这里你根据附近的强度选择每个点的阈值。 然后,选择高阈值将断开斑点。

分析应该包括像Max-Lloyd这样的邻居,并且选择的阈值可能应该在最高峰附近减去其std-dev,以确保您获得良好的结果。

窗口大小应该可能包含多个blob。


一种选择是,如果您正在使用regionprops来计算质心,则同时计算MajorAxisLengthMinorAxisLength以及返回像素列表。 对于一个近乎完整的blob,这些值应该接近相同。 另一方面,对于相似尺寸的两个圆形斑点,长轴的长度将是〜2倍较小。 另一个值regionprops可以返回的可能是'Solidity'

使用它可以提取可能要连接blob的区域的列表,使用这些区域将它们分开,并仅重新计算这些位的质心。

链接地址: http://www.djcxy.com/p/23695.html

上一篇: How to robustly segment images to correctly count blurred blobs?

下一篇: Isolating and tracking multiple objects in real time using OpenCV?