python - 数组按括号中的条件索引

标签 python numpy scikit-image

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

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,它们都很好,就像它们应该的那样。这对我来说看起来很神秘,我不知道如何解决这个问题。您能分享一下您对这个问题的看法吗?

最佳答案

我发现了这个问题,这是由于 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

就我而言,是这样的。

最简单的切片的第一次分割是用另一种算法完成的,它是一个 bool 数组。

关于python - 数组按括号中的条件索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075454/

相关文章:

Python Scikit-凝胶电泳数据的图像处理

python - 安装出现故障时如何安装 scikit-image

python - 如何解调(音频)摩尔斯电码

python - 禁用 Python 单元测试仅用于自动执行?

python - 如何将许多 2D numpy 数组快速放入 4D numpy 数组中?

python - 拉直图像中最大的线

python - 在python中将整个解释器设置为UTC

python - 从 Python 调用 PARI/GP

python - .flat 在 numpy 中的意义是什么?

matlab - Numpy vs Matlab float 到 uint8 转换