括号中的条件进行数组索引

时间:2019-05-10 10:12:08

标签: python numpy scikit-image

我正在使用随机沃克算法从MRI序列中分离i骨。我从序列中最简单的片段中对其进行了分割,然后我想使用先前的骨骼分割(侵蚀和扩张)作为内部和外部标记来遍历整个序列。我使用以下代码标记标记:

markers = np.zeros(bone_mark.shape)
out_mark = np.invert(dilation(bone_mark, disk(10)))
in_mark = erosion(bone_mark, disk(5))
markers[out_mark == True] = 1
markers[in_mark == True] = 2

其中bone_mark是先前切片的lium骨分割。第一次运行良好,但是当我在循环中运行时,第二次迭代无法将标记数组中的标签合并。在这里,您可以看到在第一次和第二次迭代中标记图像的示例:

first iteration markers

second iteration markers

我在两次迭代中都检查了out_markin_mark,它们很好,就像它们应该那样。对我来说,这看起来很神秘,我不知道如何解决此问题。您能否分享对这个问题的想法?

1 个答案:

答案 0 :(得分:0)

我发现了问题,这是由于skimage.segmentation.random_walker的输出类型不是bool而是

  

与数据形状相同的整数数组,其中每个像素   根据先到达像素的标记进行标记

在我的情况下是一二三。

最简单的切片的第一次分割是通过另一种算法完成的,它是布尔数组。