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

2024-05-09 14:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用随机游走算法从MRI序列中分割髂骨。我从序列中最简单的切片中分割出来,然后我想使用先前的骨骼分割(侵蚀和扩张)作为内部和外部标记来迭代序列。我使用以下代码来标记标记:

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是上一层髂骨的分割。它第一次工作正常,但当我在循环中运行时,第二次迭代无法在标记数组中组合标签。在这里,您可以看到第一次和第二次迭代中的标记图像示例:

first iteration markers

second iteration markers

我在两个迭代中都检查了out_markin_mark,它们都很好,就像它们应该的那样。它看起来很神秘,我不知道如何解决这个问题。你能谈谈你对这个问题的看法吗


Tags: in标记算法truenp切片序列out
1条回答
网友
1楼 · 发布于 2024-05-09 14:23:43

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

array of ints of same shape as data, in which each pixel has been labeled according to the marker that reached the pixel first

我的情况也是这样

最简单切片的第一次分割是用另一种算法完成的,这是一个布尔数组

相关问题 更多 >