我在一个numpy数组中堆叠了5个概率图(a
,其形状为256x256x5),我已将它们堆叠起来,然后我得到了所有这些的最终输出显示的argmax
然而,不同的5种颜色,对应于区域内的像素的值不相同(值在[0,1]之间变化)。
max_= np.argmax(a, axis=2)
plt.imshow(max_)
plt.show()
我不知道如何按值分隔每个对象,因为区域内的像素没有相同的值。有人知道如何标记这五个对象(彩色部分和背景)吗?
答案 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