我在使用 imread_collection()
从文件夹加载一组 480 个 .tif
图像时遇到问题(可能是我自己的错误)。
我有一个外部驱动器,里面有 480 个图像,每个图像的路径名称是:
'D:\img_channel000_position000_time000000000_z000.tif',
'D:\img_channel000_position000_time000000001_z000.tif',
'D:\img_channel000_position000_time000000002_z000.tif'
等等。 480 个图像是外部驱动器上唯一的对象。我知道这是路径名,因为我已经成功使用了
import skimage
from skimage import io
image = skimage.io.imread('D:\img_channel000_position000_time000000000_z000.tif')
导入图像并执行我想要完成的分析的第一遍。我也许天真地尝试使用以下代码来导入整个集合
import skimage
from skimage import io
ic = skimage.io.imread_collection('D:\*.tif')
但是,变量ic
甚至从未被创建。代码成功运行,没有错误,但没有任何反应。这是我实现加载模式的方式有问题吗?我还尝试了更完整的 D:\img_channel000_position000_*_z000.tif
,但没有任何反应。任何建议将不胜感激!
最佳答案
正如 @Juan 在评论中指出的那样,问题可能是 Linux 和 Windows 使用不同的目录分隔符。使代码独立于平台的一种可能方法是使用 os.path.join
像这样:
In [18]: import os
In [19]: from skimage import io
In [20]: external_drive = 'D:'
In [21]: file_spec = '*.tif'
In [22]: load_pattern = os.path.join(external_drive, file_spec)
In [23]: ic = io.imread_collection(load_pattern)
In [24]: ic
Out[24]: <skimage.io.collection.ImageCollection at 0x1f94f27f080>
In [25]: ic.files
Out[25]: ['D:\\img_001.tif', 'D:\\img_002.tif', 'D:\\img_003.tif']
在装有 Windows 10 和 Python 3.6.3 (Anaconda) 的计算机上执行测试。
关于python - imread_collection() 加载模式 (scikit-images Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57278819/