Python 将颜色映射应用于灰度图像以高效生成RGB图像
是否有一种有效的方法将彩色地图字典应用于灰度图像,以使用numpy函数转换为RGB图像 例如。 我有一个灰度图像作为numpy数组Python 将颜色映射应用于灰度图像以高效生成RGB图像,python,performance,numpy,Python,Performance,Numpy,是否有一种有效的方法将彩色地图字典应用于灰度图像,以使用numpy函数转换为RGB图像 例如。 我有一个灰度图像作为numpy数组 grayscale_image = array([[0., 0., 3.], [0., 2., 0.]]) 还有像这样的彩色地图 color_map = {3: (1,2,3), 2: (4,5,6)} 如何生成RGB图像 rgb_image = array([[[0., 0., 0.], [0., 0., 0.],
grayscale_image = array([[0., 0., 3.],
[0., 2., 0.]])
还有像这样的彩色地图
color_map = {3: (1,2,3), 2: (4,5,6)}
如何生成RGB图像
rgb_image =
array([[[0., 0., 0.],
[0., 0., 0.],
[1., 2., 3.]],
[[0., 0., 0.],
[4., 5., 6.],
[0., 0., 0.]]])
如果将颜色贴图设置为数组而不是字典,则可以利用numpy非常方便的索引。如果您有256个灰度,您将有一个形状的颜色贴图
[256,3]
。然后您可以直接索引:
import numpy as np
gray = np.array([
[0, 0, 3],
[0, 2, 0]
])
color_map = np.array([
[0,0,0],
[0,0,0],
[4,5,6],
[1,2,3],
# ... remaining color map values
])
rgb = color_map[gray]
结果:
array([[[0, 0, 0],
[0, 0, 0],
[1, 2, 3]],
[[0, 0, 0],
[4, 5, 6],
[0, 0, 0]]])
目前还不清楚您是如何为最终结果编制索引的。您的灰度图像宽3像素,高2像素。您位于
[0,0]
的像素是0
。那么,为什么您的RGB像素位于[0,0]
=[0,0,1]
?@MarkMeyer指出了这一点。我已经更新了问题。