如何标记他们没有相同值的区域?

时间:2018-02-05 07:46:20

标签: python python-2.7 numpy scikit-image cv2

我在一个numpy数组中堆叠了5个概率图(a,其形状为256x256x5),我已将它们堆叠起来,然后我得到了所有这些的最终输出显示的argmax然而,不同的5种颜色,对应于区域内的像素的值不相同(值在[0,1]之间变化)。

max_= np.argmax(a, axis=2)
plt.imshow(max_)
plt.show()

enter image description here

我不知道如何按值分隔每个对象,因为区域内的像素没有相同的值。有人知道如何标记这五个对象(彩色部分和背景)吗?

1 个答案:

答案 0 :(得分:1)

如果我理解这个问题,你需要最大概率本身,而不是最大概率的 indices 。 (小点:如果你的数组真的是5×256×256的形状,那么我认为你做np.argmanx(a, axis=0)来得到那个结果。)

这将为您提供最大的概率:

max_prob = np.amax(a, axis=0)

如果您想要每个'对象',您可以为每个区域执行此操作:

prob_1 = np.zeros((256, 256))
prob_1[max_ == 1] = max_prob[max_ == 1]
prob_1[prob_1 == 0] = np.nan