【问题标题】:Convert three I;16B images into one image将三张 I;16B 图像转换为一张图像
【发布时间】:2016-08-09 12:27:11
【问题描述】:

我有 3 张I;16B 类型的图像,我通过PIL 正确地将它们读入Python

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

【问题讨论】:

    标签: python python-imaging-library tiff


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-12-14
      • 2020-08-28
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2013-07-18
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多