首页 > 解决方案 > 在python中显示原始图像像素而不是掩码

问题描述

我有一个深度学习模型,它返回给我一个数组,当这样绘制时

res = deeplab_model.predict(np.expand_dims(resized2,0))
labels = np.argmax(res.squeeze(),-1) #remove single dimension values, gives the indices of maximum values in the array  
plt.imshow(labels[:-pad_x])

(上面的最后一行只是在绘制之前删除了一些不清楚的线)

看起来像这样
屏蔽输出

原图是这样的

原始图像

当我做

print(labels[labels>0])
print(labels.shape)
print(len(labels))

我明白了

[12 12 12 ... 12 12 12]
(512, 512)
512

我想在原始图像中显示蒙版出现的彩色像素并将其他所有内容变为黑色(或模糊或我将选择的其他颜色),我该怎么做?

标签: pythonpython-3.xnumpymatplotlibpython-imaging-library

解决方案


尚不完全清楚标签数组如何在这里工作。假设它在猫和狗所在的位置包含大于零的值,您可以使用以下内容创建蒙版图像,

mask = lables > 0
newimage = np.zeros(image.shape)
newimage[mask] = image[mask]

我根据原始图像创建了一个零图像,并设置了标签大于零的原始像素。


推荐阅读