有没有一种简单的方法可以将32位.tif转换为16位.tif?在IDL中,write_tiff允许/ short而不是/ float。 Python会这样做吗?相反,我试过这个:
i32 = Image.open('image.tif')
<Image.Image image mode=F size=2016x2016 at 0x102A3E998>
i32.convert('L').save('newimage.tif')
ImageJ(viewer)打开tif并说这个图像是8位,而不是16位。
答案 0 :(得分:3)
来自PIL documentation:'L'
模式适用于8位灰度图像,原始图像是32位浮点(模式'F'
),不是整数!要获得16位整数图像,您可以尝试使用'I;16'
作为模式;这至少在我的Pillow 2.0.0(Ubuntu 14.04)中得到支持:
f32 = Image.open('image.tif')
f32.convert('I;16').save('newimage.tif')
答案 1 :(得分:1)
Python Imaging Library不支持16位像素深度。请参阅&#34;模式&#34;在手册的concepts section中。
衍生库Pillow的same goes。
尝试例如ImageMagick(其中包含py bindings)-depth
选项。