2016-08-09 141 views
1

I;16B类型的3个图像,我正确地阅读它们进入Python通过PIL转换三个I; 16B图像转换成一个图像

#!/usr/bin/en python 

import sys 
from PIL import Image 

mode2bpp = {'1':1, 'L':8, 'P':8, 'RGB':24, 'RGBA':32, 'CMYK':32, 'YCbCr':24, 'I':32, 'F':32} 

if __name__=="__main__": 
    print "Working!" 

    basedir = sys.argv[1] 
    imname = sys.argv[2] 
    Rc = sys.argv[3] 
    Gc = sys.argv[4] 
    Bc = sys.argv[5] 
    Zstack = sys.argv[6] 

    Rtif = basedir+"/"+imname+"-"+Rc+"/Data-"+Rc+"-Z"+Zstack+".tif" 
    Gtif = basedir+"/"+imname+"-"+Gc+"/Data-"+Gc+"-Z"+Zstack+".tif" 
    Btif = basedir+"/"+imname+"-"+Bc+"/Data-"+Bc+"-Z"+Zstack+".tif" 

    Rim = Image.open(Rtif) 
    Gim = Image.open(Gtif) 
    Bim = Image.open(Btif) 

    print Rim 
    print Rim.mode 

这说明我的数据是I;16B但我不得不将它们读为3个不同的图像(每个通道一个)。我应该如何将这3个通道合并为一个图像并写入一个.tif文件作为输出?

回答

0

现在,Pillow不支持每通道多于8位的多通道图像。您只能将每个图像转换为“L”模式,并将它们与Image.merge()合并在一起。