首页 > 解决方案 > 如何根据python中的地图将rgb值转换为整数

问题描述

我有一个大的 RGB 图像,我想根据地图将每个 RGB 值转换为 index_id。我正在这样做,但速度很慢。有更快的方法吗?

NewDic = OrderedDict([
            ((0,0,0), 0),
            ((20,20,20), 1),
            ((100,20,3),2) ])


ann = Image.open(img_rgb)
ann = np.asarray(ann)
zeroann = np.zeros((ann.shape[0],ann.shape[1]))

for x in range(ann.shape[0]):
  for y in range(ann.shape[1]):  
     A = ann[x,y,:]
     zeroann[x,y] = NewDic[tuple(A)]

标签: pythonimage-processingmatrixcomputer-vision

解决方案


您是否需要特定映射,否则您可以尝试直接映射。

ann = Image.open(img_rgb)
ann = np.asarray(ann)
# define newann as:
newoann = ann[:, :, 0] + ann[:, :, 1] * 256 + ann[:, :, 2] * 256**2
# Then do the mapping

这将导致每个 RGB 值的唯一索引。


推荐阅读