【发布时间】:2021-10-13 13:36:30
【问题描述】:
如何在 numpy 中编写这个 for 循环以使其运行得更快我正在尝试将值为 0-7 的灰度标签转换为具有相应颜色的彩色图像
def label_img_to_color(img):
label_to_color = {
0: [0, 0,0],
1: [244, 35,232],
2: [ 70, 70, 70],
3: [102,102,156],
4: [190,153,153],
5: [153,153,153],
6: [250,170, 30],
7: [220,220, 0],
}
img_height, img_width = img.shape
img_color = np.zeros((img_height, img_width, 3))
for row in range(img_height):
for col in range(img_width):
label = img[row, col]
img_color[row, col] = np.array(label_to_color[label])
return img_color
【问题讨论】:
-
是的。将字典转换为 numpy 数组并将其称为“查找表”,然后使用 numpy 索引进行查找。删除所有循环
-
你会找到答案here。
-
我不太明白如何使用 numpy 索引进行查找@Christopher Rackwitz
标签: opencv image-processing deep-learning semantic-segmentation deeplab