使用torch7从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?

Posted

技术标签:

【中文标题】使用torch7从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?【英文标题】:Read images from local disk using torch7 while those images saved in different subfolders? 【发布时间】:2015-10-05 07:29:55 【问题描述】:

我有保存在办公桌上的图像。保存的数据如下: 4 个主文件夹(1、2、3 和 4)每个文件夹有 26 个子文件夹(这些子文件夹代表图像类别(A、B、C、D、..、Z))。这些子文件夹中的每一个都包含 500 多张图像。但是,我正在寻找可以读取这些图像的torch 中的文件或代码。在 MATLAB 中我可以编写代码,但在这里我发现它很混乱。能否请教一下。

【问题讨论】:

【参考方案1】:

你可以做的是使用Penlight(安装Torch时库is installed)。

Penlight 提供pl.dir,可以轻松扫描(子)文件夹中的文件。例如你可以做的是:

local pl = require('pl.import_into')()
local t = 
for i,f in ipairs(pl.dir.getallfiles('/data/foo', '*.jpg')) do
    t[i] =  f, pl.path.basename(pl.path.dirname(f)) 
end

这将创建一个对列表(文件名、类标签 = "A" 或 "B" ...)。当然,您可以随意更改文件模式 (*.jpg) 或省略它(在这种情况下,Penlight 将简单地列出所有文件)。您还可以动态加载图像:

t[i] =  image.load(f), pl.path.basename(pl.path.dirname(f)) 

或者在操作 t 之后立即执行此操作。

【讨论】:

非常感谢,我认为它有效,但我还有其他问题。当我加载我的图像时,我收到了这条消息(恐慌:调用 Lua API 时出现不受保护的错误(内存不足))我的图像数量不是那么大,接近 100.000 张图像,我使用的是 16gb RAM 的 macbook。 在这种情况下,不要将所有图像加载到内存中,即像上面第一个代码 sn-p 一样保留文件名,只在需要时加载一批图像(也称为延迟加载) .

以上是关于使用torch7从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章

[Android]从视频流读取帧图像保存到本地

如何从 SQL Server 表中读取图像数据(存储 word 文档)并将其保存到本地文件夹

如何在 iPhone 设备中本地保存图像和数据

有没有办法从文件夹中读取图像并将其保存在 powerpoint 中

asp.net core 2 从本地磁盘驱动器加载和显示图像

如何将图像保存到java中的目录[关闭]