我想在 Python 中使用 PIL 创建一个 48 位 (RGB) TIFF 文件(每通道 16 位)。然而,即使我找到了一种将单个通道存储为 16 位的方法,我也无法将它们合并到一个 48 位 RGB 图像中:
In [3]: import numpy as np
In [4]: from PIL import Image
In [5]: r = np.array([[1,2],[3,4]], dtype=np.uint16)
In [6]: i = Image.fromarray(r, mode='I;16')
In [7]: Image.merge("RGB", (i,i,i))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-7-35aa00ddbb2e> in <module>()
----> 1 Image.merge("RGB", (i,i,i))
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/Image.pyc in merge(mode, bands)
2059 for im in bands[1:]:
2060 if im.mode != getmodetype(mode):
-> 2061 raise ValueError("mode mismatch")
2062 if im.size != bands[0].size:
2063 raise ValueError("size mismatch")
ValueError: mode mismatch
有没有人对如何解决这个问题有任何想法?还是我需要将通道保存为单独的 16 位文件并与不同的软件结合使用?