本文介绍了如何将3D RGB标签图像(在语义分割中)转换为2D灰度图像,并且类索引从0开始?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个rgb语义分段标签,如果其中有3个类,并且每个RGB值是以下之一:

I have a rgb semantic segmentation label, if there exists 3 classes in it, and each RGB value is one of:

[255, 255, 0], [0, 255, 255], [255, 255, 255]

分别,然后我想根据dict将RGB文件中的所有值映射到新的2D标签图像中:

respectively, then I want to map all values in RGB file into a new 2D label image according to the dict:

{(255, 255, 0): 0, (0, 255, 255): 1, (255, 255, 255): 2}

之后,新的灰色标签文件中的所有值均为0、1或2之一.是否有解决此问题的有效方法?例如,NumPy中的广播.

after that, all values in the new gray label file is one of 0, 1 or 2.Is there an efficient way to solve this problem? For example broadcasting in NumPy.

推荐答案

您可以执行以下操作:

# the three channels
r = np.array([255, 255, 0])
g = np.array([0, 255, 255])
b = np.array([255, 255, 255])

label_seg = np.zeros((img.shape[:2]), dtype=np.int)
label_seg[(img==r).all(axis=2)] = 0
label_seg[(img==g).all(axis=2)] = 1
label_seg[(img==b).all(axis=2)] = 2

那么,如果

img = np.array([[r,g,b],[r,r,r],[b,g,r],[b,g,r]])

然后

label_seg = array([[0, 1, 2],
                   [0, 0, 0],
                   [2, 1, 0],
                   [2, 1, 0]])

这篇关于如何将3D RGB标签图像(在语义分割中)转换为2D灰度图像,并且类索引从0开始?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 11:09