我在 .tif 文件方面遇到了一些问题。我确信这只是一个我无法解决的小问题(请记住,我是一个相对较新的程序员)。
基本上:我准备了大小为 64x64xn 的 .tif 文件(n 最多 1000)。该图像只是包含所有这些切片的单个文件。我想将图像加载到(多维)numpy 数组中。我努力了:
from PIL import Image as pilimage
file_path=(D:\luca\test\test.tif)
print("The selected stack is a .tif")
dataset = pilimage(file_path)
tiffarray = np.array(dataset)
expim = tiffarray.astype(np.double);
print(expim.shape)
和其他东西(如 tifffile)。我似乎只能读取堆栈的第一片。 “expim”是否可以包含保存在 tiff 堆栈中的所有信息?
我不确定是否有办法让 PIL 打开 tiff 堆栈的多个切片。
但是,如果您不必使用 PIL,则还有一种替代方法scikit 图像 http://scikit-image.org/,默认情况下从 tiff 堆栈中打开多个切片。以下是如何使用 scikit-image 将 tiff 堆栈加载到 Numpy 数组中的一些示例代码:
>>> from skimage import io
>>> im = io.imread('an_image.tif')
>>> print(im.shape)
(2, 64, 64)
请注意,imread 函数将图像直接加载到 Numpy 数组中。此外,结果数组的维度是有序的 (z, y, x),其中 z 表示深度,y 表示高度,x 表示宽度。因此,要从堆栈中获取单个切片,您所要做的就是:
>>> print(im[1].shape)
(64, 64)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)