4

我想稳健段下面的图片(以及其他类似的图像)的图像分析和斑点计数:如何稳健地分割图像以正确计数模糊斑点?

first image

应该有900个独特的斑点。

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

我已经能够亲近,但我仍然似乎总是有连接在一起的斑点:

second image

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

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

+0

blob总是排列在同一个网格结构中吗? – Shai 2015-03-25 12:35:37

+0

网格结构将在每个图像中以不同方式倾斜,但基本网格结构将保持不变。 – hollingswood 2015-03-25 12:39:59

+0

如果它总是一样的网格,你究竟想要估计什么?它总是有900个位置,你需要计算它们有多少亮?可以将一些地点变黑吗? – Shai 2015-03-25 15:59:00

回答

1

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

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

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

1

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

使用此选项可以提取可能要连接blob的区域的列表,使用这些区域对这些区域进行分离并仅重新计算这些位的质心。

+0

如何才能侵蚀特定的斑点而不是全部? – hollingswood 2015-03-26 13:13:40

+0

我会首先提取“良好质心”,然后使用返回的“PixelList”来处理不好的图像,使其仅包含连接的斑点,侵蚀该斑点,然后在其上运行第二个'regionprops',并将两个质心列表粘在一起。 – nkjt 2015-03-26 13:19:37