Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
imread_collection()加载模式(scikit图像Python)_Python_Image Processing_Scikit Image - Fatal编程技术网

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
。。。让我们知道这些对你是否有帮助!