所以我有一组数据,我可以将其转换为 R、G、B 波段的单独 numpy 数组。现在我需要将它们组合起来形成一个 RGB 图像。
我尝试使用“图像”来完成这项工作,但它需要归因于“模式”。
我试着做一个把戏。我会使用 Image.fromarray() 将数组转换为图像,但是当 Image.merge 需要“L”模式图像进行合并时,默认情况下它会达到“F”模式。如果我首先将 fromarray() 中的数组属性声明为“L”,那么所有的 R G B 图像都会失真。
但是,如果我保存图像然后打开它们然后合并,它工作正常。 Image 以“L”模式读取图像。
现在我有两个问题。
首先,我不认为这是一种优雅的工作方式。所以如果有人知道更好的方法,请告诉
其次,Image.SAVE 无法正常工作。以下是我面临的错误:
In [7]: Image.SAVE(imagefile, 'JPEG')
----------------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/media/New Volume/Documents/My own works/ISAC/SAMPLES/<ipython console> in <module>()
TypeError: 'dict' object is not callable
请提出解决方案。
请注意,图像大约是 4000x4000 大小的数组。
最佳答案
rgb = np.dstack((r,g,b)) # stacks 3 h x w arrays -> h x w x 3
还要将 float 0 .. 1 转换为 uint8 s,
rgb_uint8 = (np.dstack((r,g,b)) * 255.999) .astype(np.uint8) # right, Janna, not 256
关于python - 在 Python 中将 3 个单独的 numpy 数组组合为 RGB 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10443295/