使用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从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQL Server 表中读取图像数据(存储 word 文档)并将其保存到本地文件夹
有没有办法从文件夹中读取图像并将其保存在 powerpoint 中