按平铺标记灰度图像中的对象时,处理不正确的非二进制标记



我正在做一个项目,我有一个模型,它可以进行实例分割,以分割图像中的细胞核。下一步是标记这些分割的细胞核。我正在通过将图像处理为平铺来缩放标签。

我现在面临的问题是想出一种方法来处理不正确的标签。基本上,当有一个对象由于平铺而被分割时,它们会被不同地标记。

tile_size = 2048
for x in range(0, vec_arr.shape[2], tile_size):
x_max = min([vec_arr.shape[2], x + tile_size])
for y in range(0, vec_arr.shape[1], tile_size):
y_max = min([vec_arr.shape[1], y + tile_size])

上面的代码解释了如何平铺图像。我正在使用此回购(https://github.com/MouseLand/cellpose/blob/master/cellpose/dynamics.py#L574)作为标记图像的基础,因为我正在使用他们的网络。我正在寻找如何识别跨瓷砖连接的对象并用相同值填充它们的想法。

目前,我维护了一个瓷砖中标记对象数量的计数器,并从该值开始标记。

我很想知道如何在瓷砖上识别相同的物体。

这并不容易。

首先,你需要在你的瓷砖重叠。每个瓦片应该与周围的瓦片重叠一定的量,然后在重新组合较大的图像时将其切掉。重叠量应至少为细胞核的大小,但优选更大。额外的空间是为了确保横跨瓷砖边缘的细胞核在你能看到的两块瓷砖中被相同地检测到

接下来,当剪切重叠区域并分解较大的图像时,必须根据其"属于"哪个瓦片,完全保留或完全移除横跨瓦片边缘(部分位于重叠区域(的细胞核。对此有不同的定义方法。例如,可以计算核心的质心,并确定它在哪个瓦片中,然后从另一个瓦片中移除核心。

因此,每个细胞核都是在一个瓦片中检测到的。然而,如果重叠区域不够大,那么在两个重叠的瓦片中对细胞核的检测可能不具有相同的形状,从而导致同一细胞核的两个不同质心。在这种情况下,细胞核可以被视为不是任一瓦片的一部分,也不是两个瓦片的一部份。了解检测算法非常重要,这样您就可以找到正确的重叠大小,从而保证对两个瓦片进行相同的检测。

最新更新