imread_collection()加载模式(scikit图像Python)
我在使用imread_collection()加载模式(scikit图像Python),python,image-processing,scikit-image,Python,Image Processing,Scikit Image,我在使用imread\u collection()从文件夹加载480张.tif图像时遇到问题(可能是我自己的错误) 我有一个包含480个映像的外部驱动器,因此每个映像的路径名为: 'D:\img_channel000_position000_time000000000_z000.tif', 'D:\img_channel000_position000_time000000001_z000.tif', 'D:\img_channel000_position000_time000000002_z
imread\u 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\u channel000\u position000\u*\ u z000.tif
,但没有任何结果。任何建议都将不胜感激 正如@Juan在评论中指出的,问题可能是Linux和Windows使用不同的目录分隔符。使您的代码平台独立的一种可能方法是如下使用:
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']
[18]中的:导入操作系统
In[19]:来自skimage import io
在[20]中:外部_驱动器='D:'
在[21]中:文件_spec='*.tif'
在[22]中:load\u pattern=os.path.join(外部\u驱动器,文件\u规范)
In[23]:ic=io.imread\u集合(加载模式)
In[24]:ic
出[24]:
In[25]:ic.files
输出[25]:['D:\\img_001.tif','D:\\img_002.tif','D:\\img_003.tif']
在使用Windows 10和Python 3.6.3(Anaconda)的机器上执行的测试。正如@Juan在评论中指出的,问题可能是Linux和Windows使用不同的目录分隔符。使您的代码平台独立的一种可能方法是如下使用:
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']
[18]中的:导入操作系统
In[19]:来自skimage import io
在[20]中:外部_驱动器='D:'
在[21]中:文件_spec='*.tif'
在[22]中:load\u pattern=os.path.join(外部\u驱动器,文件\u规范)
In[23]:ic=io.imread\u集合(加载模式)
In[24]:ic
出[24]:
In[25]:ic.files
输出[25]:['D:\\img_001.tif','D:\\img_002.tif','D:\\img_003.tif']
在使用Windows 10和Python 3.6.3(Anaconda)的计算机上执行的测试。我没有要测试的Windows计算机,但我怀疑Windows路径(带反斜杠)和glob(scikit image用于查找文件)没有很好地交互。我建议使用
os.path.normpath('D:/*.tif')
,甚至只使用'D:/*.tif'
或/D/*.tif
。。。让我们知道这些对你是否有帮助!我没有要测试的windows机器,但我怀疑windows路径(带反斜杠)和glob(scikit映像用于查找文件)没有很好地交互。我建议使用os.path.normpath('D:/*.tif')
,甚至只使用'D:/*.tif'
或/D/*.tif
。。。让我们知道这些对你是否有帮助!