Python で PIL を使用して 48 ビット (RGB) TIFF ファイル (チャネルあたり 16 ビット) を作成したいと考えています。ただし、個々のチャネルを 16 ビットとして保存する方法を見つけたにもかかわらず、これらを 1 つの 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 ビット ファイルとして保存し、それらを別のソフトウェアと組み合わせる必要がありますか?