skimage.io.imread returns TIFF 导入的尺寸不正确
skimage.io.imread returns incorrect dimensions for TIFF import
使用 skimage.io.imread returns 形状为 (3,M,N) 而不是 (M,N,3) 的数组导入 TIFF 图像。
In [1]: im = skimage.io.imread('image.tif')
In [2]: im.shape
Out[2]: (3, 768, 1024)
In [3]: im = skimage.io.imread('image.tif', as_grey = True)
In [4]: im.shape
Out[4]: (3, 768)
In [5]: im = skimage.io.imread('image.tif', flatten = True)
In [6]: im.shape
Out[6]: (3, 768)
我认为将此称为 imread
的扁平化功能中的错误是公平的,因此在那里打开一个问题可能是合适的。
我不太清楚哪个顺序是"correct."性能有差异。如果您循环使用颜色通道,(3, M, N) 会更快。如果您要遍历行或列,则 (M, N, 3) 更快。但很明显 flatten
和 as_grey
无法正确检测尺寸。
这里的解决方法显然很简单,但您也可以查看 tifffile,可通过 pip 或从 conda install -c soft-matter tifffile
.
等软件渠道安装
使用 skimage.io.imread returns 形状为 (3,M,N) 而不是 (M,N,3) 的数组导入 TIFF 图像。
In [1]: im = skimage.io.imread('image.tif')
In [2]: im.shape
Out[2]: (3, 768, 1024)
In [3]: im = skimage.io.imread('image.tif', as_grey = True)
In [4]: im.shape
Out[4]: (3, 768)
In [5]: im = skimage.io.imread('image.tif', flatten = True)
In [6]: im.shape
Out[6]: (3, 768)
我认为将此称为 imread
的扁平化功能中的错误是公平的,因此在那里打开一个问题可能是合适的。
我不太清楚哪个顺序是"correct."性能有差异。如果您循环使用颜色通道,(3, M, N) 会更快。如果您要遍历行或列,则 (M, N, 3) 更快。但很明显 flatten
和 as_grey
无法正确检测尺寸。
这里的解决方法显然很简单,但您也可以查看 tifffile,可通过 pip 或从 conda install -c soft-matter tifffile
.