将分割图矢量化为 RGB 颜色

Posted

技术标签:

【中文标题】将分割图矢量化为 RGB 颜色【英文标题】:vectorization of Segmentation map to RGB colors 【发布时间】:2021-08-24 21:29:00 【问题描述】:

我编写了一个函数,该函数返回分割映射输入的 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 数组。

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

有人可以帮我对函数进行矢量化吗?感谢所有输入。

【问题讨论】:

【参考方案1】:

这对numpy 来说很简单:

rgb_color_image = color_group[segment_map]

这只是使用fancy indexing。

【讨论】:

以上是关于将分割图矢量化为 RGB 颜色的主要内容,如果未能解决你的问题,请参考以下文章

Photoshop中一个8位图支持的颜色有多少种?

ps中的位图,矢量图,颜色模式

文档的新建

使用 Kmeans聚类实现颜色的分割

OpenCV RGB 单通道颜色调节

rgba()如何知道RGB颜色是由哪个RGB值经过百分之三十透明过来的?有计算方法吗?