将整数矩阵映射到图像
Map a matrix of integers to and image
您好,我在将矩阵转换为图像时遇到问题。我正在处理生成的程序内容 'world map',我正在尝试以漂亮的颜色显示矩阵。
我有一个类似于下面这个数组的数组:
world_map = [[2, 2, 2, 2, 2, 2, 2, 2, 3, 2, ],
[1, 2, 2, 2, 2, 2, 1, 1, 2, 2, ],
[1, 2, 2, 2, 2, 2, 1, 1, 1, 3, ],
[2, 2, 2, 2, 2, 2, 2, 2, 1, 2, ],
[2, 3, 2, 2, 2, 3, 2, 2, 2, 2, ],
[3, 3, 2, 2, 2, 2, 2, 2, 2, 2, ],
[2, 2, 2, 2, 2, 2, 1, 2, 2, 2, ],
[2, 2, 2, 1, 2, 2, 1, 2, 2, 2, ],
[2, 2, 1, 2, 2, 2, 2, 3, 2, 3, ],
[2, 2, 2, 3, 2, 2, 1, 2, 2, 2, ]]
我想做的是通过将值 1、2 和 3 映射到我通过此查找选择的一些 RGB 值来将此矩阵转换为类似图像 table:
color_map = {
1: [50, 64, 168],
2: [70, 156, 44],
3: [176, 167, 99],
}
我已经尝试使用 python map
函数映射每个值,并且我已经尝试向量化这样的映射函数 np.vectorize(lambda c: color_map[c])(world_map)
但这导致了错误。有谁知道将此矩阵映射到图像的正确方法?
这应该可以满足您的需求:
world_map = np.array(world_map)
img = np.empty(tuple(list(world_map.shape) + [3]))
img[world_map==1] = [50, 64, 168]
img[world_map==2] = [70, 156, 44]
img[world_map==3] = [176, 167, 99]
您好,我在将矩阵转换为图像时遇到问题。我正在处理生成的程序内容 'world map',我正在尝试以漂亮的颜色显示矩阵。
我有一个类似于下面这个数组的数组:
world_map = [[2, 2, 2, 2, 2, 2, 2, 2, 3, 2, ],
[1, 2, 2, 2, 2, 2, 1, 1, 2, 2, ],
[1, 2, 2, 2, 2, 2, 1, 1, 1, 3, ],
[2, 2, 2, 2, 2, 2, 2, 2, 1, 2, ],
[2, 3, 2, 2, 2, 3, 2, 2, 2, 2, ],
[3, 3, 2, 2, 2, 2, 2, 2, 2, 2, ],
[2, 2, 2, 2, 2, 2, 1, 2, 2, 2, ],
[2, 2, 2, 1, 2, 2, 1, 2, 2, 2, ],
[2, 2, 1, 2, 2, 2, 2, 3, 2, 3, ],
[2, 2, 2, 3, 2, 2, 1, 2, 2, 2, ]]
我想做的是通过将值 1、2 和 3 映射到我通过此查找选择的一些 RGB 值来将此矩阵转换为类似图像 table:
color_map = {
1: [50, 64, 168],
2: [70, 156, 44],
3: [176, 167, 99],
}
我已经尝试使用 python map
函数映射每个值,并且我已经尝试向量化这样的映射函数 np.vectorize(lambda c: color_map[c])(world_map)
但这导致了错误。有谁知道将此矩阵映射到图像的正确方法?
这应该可以满足您的需求:
world_map = np.array(world_map)
img = np.empty(tuple(list(world_map.shape) + [3]))
img[world_map==1] = [50, 64, 168]
img[world_map==2] = [70, 156, 44]
img[world_map==3] = [176, 167, 99]