将三个I; 16B图像转换为一个图像

时间:2016-08-09 12:27:12

标签: python python-imaging-library tiff

我有3张I;16B类型的图片,我正在通过Python正确地将其读入PIL

#!/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文件作为输出?

1 个答案:

答案 0 :(得分:0)

目前,Pillow不支持每通道超过8位的多通道图像。您只能将每张图片转换为' L'模式并将它们与Image.merge()合并在一起。