将分割图矢量化为 RGB 颜色

vectorization of Segmentation map to RGB colors

我写了一个函数,returns 分段映射输入的 RGB 颜色图。问题是我在操作中使用了“for”循环,它真的很慢。函数如下:

def segment_map_to_rgb_color_image(color_group, segment_map):
    
         rgb_color_image = np.zeros((len(segment_map[0]), len(segment_map[1]), 3), dtype=np.uint8)
    
         for i in range(np.size(segment_map, axis=0)):
             for j in range(np.size(segment_map, axis=1)):
                 idx = segment_map[i][j]
                 for p in range(len(color_group[0])):  
                     rgb_color_image[i][j][p] = color_group[idx][p]                    
                    
         return rgb_color_image

详情:

color_group[256, 3] NumPy 数组,其中每个索引对应特定的 RGB 颜色,例如 color_group[0] = [184, 212, 52].

segment_map[height, width] NumPy 数组,其中每个像素是 0 到 255 之间的整数。

rgb_color_image[height, width, 3] NumPy 数组。

我在向量化函数时遇到困难,当前的非向量化函数对于实时分析来说太慢了。

谁能帮我向量化这个函数?感谢所有意见。

这对 numpy 来说很简单:

rgb_color_image = color_group[segment_map]

这只是使用 fancy indexing.