2016-08-09 56 views
1

Ich habe 3 Bilder vom Typ I;16B und ich richtig sie in Python über PIL lese:Konvertieren drei I; 16B Bilder in ein Bild

#!/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 

Dies zeigt mir, dass die Daten I;16B ist, aber ich habe zu lese sie als 3 verschiedene Bilder (eins pro Kanal). Wie soll ich diese 3 Kanäle in ein Bild kombinieren und eine .tif Datei als Ausgabe schreiben?

Antwort

0

Momentan unterstützt Pillow keine Mehrkanalbilder mit mehr als 8 Bit pro Kanal. Sie können nur jedes Bild in den "L" -Modus konvertieren und sie zusammen mit Image.merge() zusammenführen.