如何稳健地分割图像以正确计数模糊斑点?
我正在尝试对下面的图像(以及其他类似图像)进行鲁棒地分割以用于图像分析和斑点计数:
应该有900个独特的斑点。
我尝试调整对比度,锐化,阈值,动态局部阈值,侵蚀,这些和其他形态操作符的组合。
我已经能够接近了,但我仍然总是把blob连接在一起:
侵蚀二进制图像更有帮助,但我最终失去了一些较小的斑点。
是否有办法对大于特定大小的斑点进行侵蚀,所以我不会丢失较小的斑点? 我应该使用不同的侵蚀元素吗? 或者我只是以错误的方式来解决这个问题?
你应该做的是执行一个局部阈值,在这里你根据附近的强度选择每个点的阈值。 然后,选择高阈值将断开斑点。
分析应该包括像Max-Lloyd这样的邻居,并且选择的阈值可能应该在最高峰附近减去其std-dev,以确保您获得良好的结果。
窗口大小应该可能包含多个blob。
一种选择是,如果您正在使用regionprops
来计算质心,则同时计算MajorAxisLength
和MinorAxisLength
以及返回像素列表。 对于一个近乎完整的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?