我正在尝试对以下图像(以及其他类似图像)进行强有力的分割,以便进行图像分析和斑点计数:

应该有900个唯一的斑点。
我尝试了调整对比度,锐化,阈值,动态局部阈值,侵蚀,这些和其他形态学算子的组合。
我已经能够接近,但我仍然似乎总是有连接在一起的斑点:

侵蚀二进制图像更有帮助,但最终会丢失一些较小的斑点。
有没有办法只对大于特定大小的斑点进行侵蚀,这样我就不会丢失较小的斑点?我应该使用不同的侵蚀元素吗?或者我只是以错误的方式来处理这个问题?
发布于 2015-03-25 20:45:12
你应该做的是执行局部阈值,根据附近的强度为每个点选择阈值。然后,选择较高的阈值将断开斑点的连接。
分析应该包括邻居的Max-Lloyd之类的东西,所选的阈值可能应该是最高峰值减去其std-dev,以确保您获得良好的结果。
窗口大小可能应该包括几个斑点。
发布于 2015-03-26 21:00:32
如果您正在使用regionprops计算质心,一种选择是同时让它计算MajorAxisLength和MinorAxisLength以及返回像素列表。对于接近圆形的斑点,这些值应该接近相同。另一方面,对于连接的两个大小相似的圆形斑点,长轴长度将为~2x次要长度。regionprops可以返回的另一个可能有用的值是'Solidity'。
使用此选项可提取可能连接斑点的区域列表,对这些区域使用侵蚀来分隔它们,并仅重新计算这些位的质心。
https://stackoverflow.com/questions/29255745
复制相似问题