python - imread_collection() 加载模式 (scikit-images Python)

标签 python image-processing scikit-image

我在使用 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/

相关文章:

c++ - OpenCV - moments() 函数中的参数

image - 使用 GPU (CUDA) 时 opencv 中的像素访问

python - 从 OpenCV + Python 获取 HOG 图像特征?

python - 我如何从这张图片中删除背景,只想从图片中选择生菜?

python - 如何使 matplotlib-basemap 轴与另一个子图轴的长度相等?

python - Django 管理应用程序 : building a dynamic list of admin actions

python - 如何公开导入的组件?

Python For 循环仅将最后一个值追加到列表中

python - 值错误: Could not find a format to write the specified file in single-image mode

python - Python中图像的交互式像素信息?