【发布时间】:2012-12-25 16:15:03
【问题描述】:
我有一个看起来像这样的 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,而不仅仅是实时查看。原因是其中很多都是在无头机器上执行的,然后我会在事后对其进行检查。
当前算法的输出看起来很糟糕:
【问题讨论】:
-
了解您的
val_to_rgb函数的作用真的很有帮助。