首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将3D RGB标签图像(语义分割)转换为二维灰度图像,类索引从0开始?

如何将3D RGB标签图像(语义分割)转换为二维灰度图像,类索引从0开始?
EN

Stack Overflow用户
提问于 2018-10-30 07:19:50
回答 4查看 4.1K关注 0票数 7

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

代码语言:javascript
复制
[255, 255, 0], [0, 255, 255], [255, 255, 255]

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

代码语言:javascript
复制
{(255, 255, 0): 0, (0, 255, 255): 1, (255, 255, 255): 2}

在此之后,新的灰标签文件中的所有值都是0、1或2中的一个。有什么有效的方法来解决这个问题吗?例如,在NumPy中广播

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-10-30 10:02:18

你可以这样做:

代码语言:javascript
复制
# 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

所以,如果

代码语言:javascript
复制
img = np.array([[r,g,b],[r,r,r],[b,g,r],[b,g,r]])

然后,

代码语言:javascript
复制
label_seg = array([[0, 1, 2],
                   [0, 0, 0],
                   [2, 1, 0],
                   [2, 1, 0]])
票数 1
EN

Stack Overflow用户

发布于 2019-06-14 08:47:34

这个怎么样?

代码语言:javascript
复制
mask_mapping = {
    (255, 255, 0):   0,
    (0, 255, 255):   1,
    (255, 255, 255): 2,
}
for k in mask_mapping:
    label[(label == k).all(axis=2)] = mask_mapping[k]

我认为它是基于与公认的方法相同的想法,但它看起来更清晰。

票数 1
EN

Stack Overflow用户

发布于 2020-06-03 18:14:09

我在这里也回答了这个问题:Convert RGB image to index image

基本上:

代码语言:javascript
复制
cmap = {(255, 255, 0): 0, (0, 255, 255): 1, (255, 255, 255): 2}

def rgb2mask(img):

    assert len(img.shape) == 3
    height, width, ch = img.shape
    assert ch == 3

    W = np.power(256, [[0],[1],[2]])

    img_id = img.dot(W).squeeze(-1) 
    values = np.unique(img_id)

    mask = np.zeros(img_id.shape)

    for c in enumerate(values):
        try:
            mask[img_id==c] = cmap[tuple(img[img_id==c][0])] 
        except:
            pass
    return mask

您可以根据需要扩展字典。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53059201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档