我有一张图片可能包含一些 Blob 。 Blob 大小不限,有些会产生非常强的信号,而另一些则非常微弱。在这个问题中,我将重点关注弱点,因为它们很难检测到。
这是一个有 4 个 blob 的例子。
(480, 180) 处的 Blob 是最难检测的 Blob 。通过运行高斯滤波器然后进行开操作会稍微增加对比度,但不会增加很多:
这个问题的棘手部分是背景中的自然噪声会导致(许多)像素具有比我想要检测的 Blob 更强的信号。 Blob 之所以成为 Blob ,是因为它要么是强度平均增加的大区域(要么是强度增加非常大的小区域(此处不相关))。
如何包含此空间信息以检测我的 Blob ?
很明显,我首先需要使用高斯和/或中值滤波器对图像进行滤波,以便将每个像素的附近区域合并到每个单个像素值中。然而,再多的模糊也不足以轻松地将 Blob 从背景中分割出来。
编辑:关于阈值: 阈值非常诱人,但本身也存在问题。我没有“纯背景”区域, Blob 越大,信号越弱 - 但仍可检测到。
我也不应该认为典型的图像根本没有任何 Blob ,而只是纯背景。
最佳答案
您可以尝试 h-minima 变换。它删除了 h 高度以下的任何最小值,并将所有其他通过的高度增加 h。它被定义为侵 eclipse 的形态重建增加了高度 h。这是 h = 35 的结果:
它应该更容易操作。它还需要像分段这样的输入。不同之处在于它更健壮。相对较大地低估 h 只会使您更接近原始问题图像,而不是完全失败。
您可以尝试表征背景噪声以获得估计值,假设无论您的应用程序是什么,都会有相对恒定的噪声量。
请注意,底部两个大 Blob 之间有一个蓝点。甚至还需要进一步处理。您可以尝试继续形态学。我发现在像这样的一些“墨迹”分割案例中起作用的东西是遍历每个连接的组件,计算它们的凸包,最后计算图像中所有凸包的并集。它通常使进一步的形态学操作变得更加容易,并为标签提供了一个很好的估计。
关于image - 检测噪声图像中的弱 Blob ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366458/