python 三维数组 存为tiff_浅谈python下tiff图像的读取和保存方法

对比测试 scipy.misc和 PIL.Image和 libtiff.TIFF三个库

输入:

1. (读取矩阵) 读入uint8、uint16、float32的lena.tif

2. (生成矩阵) 使用numpy产生随机矩阵,float64的mat

import numpy as np

from scipy import misc

from PIL import Image

from libtiff import TIFF

#

# 读入已有图像,数据类型和原图像一致

tif32 = misc.imread('.\test\lena32.tif') #

tif16 = misc.imread('.\test\lena16.tif') #

tif8 = misc.imread('.\test\lena8.tif') #

# 产生随机矩阵,数据类型float64

np.random.seed(12345)

flt = np.random.randn(512, 512) #

# 转换float64矩阵type,为后面作测试

z8 = (flt.astype(np.uint8)) #

z16 = (flt.astype(np.uint16)) #

z32 = (flt.astype(np.float32)) #

①对读取图像和随机矩阵的存储

# scipy.misc『不论输入数据是何类型,输出图像均为uint8』

misc.imsave('.\test\lena32_scipy.tif', tif32) #--> 8bit(tif16和tif8同)

你可能感兴趣的:(python,三维数组,存为tiff)