python - 将整数矩阵映射到图像
问题描述
嗨,我无法将矩阵转换为图像。我正在处理生成“世界地图”的程序内容,并且正在尝试用漂亮的颜色显示矩阵。
我有一个类似于下面这个数组的数组:
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 值来将此矩阵转换为相似和图像:
color_map = {
1: [50, 64, 168],
2: [70, 156, 44],
3: [176, 167, 99],
}
我尝试使用 pythonmap
函数映射每个值,并且尝试对这样的映射函数进行矢量化,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]
推荐阅读
- python - Python 3 PyType_Ready 中的分段错误
- r - 在对象中存储参数并在函数中调用
- html - 我怎样才能像谷歌一样制作一个百分比圈?
- python - Matplotlib 分组条形图无法正常工作
- grep - 来自命令历史记录的 Grep 给出的结果与我输入时不同
- python-3.x - 在装饰器链接中,我们传递给装饰器的函数是否被执行了两次?
- javascript - 历史 pushstate 后退和前进功能
- angularjs - 是否可以在 angularjs 中创建 PWA?
- python - 如何使用python列出具有限制IAM用户权限的子文件夹中的存储桶
- r - 如何在 R 中生成具有特定拆分比的大小为 80 的随机样本?