我有一个 numpy ndarray,它看起来像:
[[0, 0.25, 1, ...., 0.5, 0.23 ],
[0.3, 0.75, 1, ..., 0.5, 0.37 ],
...,
...,
[0, 0.25, 1, ...., 0.5, 0.23 ],
[0.3, 0.75, 1, ..., 0.5, 0.37 ]]
基本上每个值都在 0 - 1.0 范围内
我想将其可视化为位图,目前我有一个非常慢的循环,基本上是这样做的:
for i, row in enumerate(data):
for j, val in enumerate(row):
yield val_to_rgb(val)
然后它将采用 rgb 组件的 3 元组并对其执行 PIL putdata 并创建一个 PNG。
我需要这样做很多次,这种 ghetto 方法很慢,而且着色非常难看。
我的问题是这样的:
我可以应用一系列矩阵运算来生成包含原始 RGB 值的彩色矩阵吗?
这实际上包括两个问题:
- 我可以应用什么最有效的转换来从上述矩阵中获取 RGB 元组
- 有没有一种“好”的方法可以将 (0, 1.0) 值转换为彩色表示?
编辑:澄清-我希望将其保存为 PNG,而不仅仅是实时查看。原因是其中很多都是在无头机器上执行的,然后我会在事后对其进行检查。
当前算法的输出看起来很糟糕: