2011-12-30 72 views
4

我使用PyTables来存储一些图像作为ArrayCArray数据类型。对于这些图像中的每一个,我也想存储一些基本的元数据(例如,EXIF数据)。用PyTables存储图像和元数据

我可以想像许多方法来存储这两种数据格式,从与AttributeSet类为每个Array/CArray所述元数据存储到使用Table所有元数据。

我的问题是:如果我希望能够高效查询和提取最终hdf5文件中的图像进行处理,最佳方法是什么?例如,我希望能够提取某些时间(下午12时至3时)拍摄的图像并处理该数据的子集,然后将副本插入数据库或替换现有阵列。

非常感谢您的帮助。

最佳,

尼克

[编辑(澄清):我目前正在处理这些图像与NumPy阵列,我希望保留这些功能]的PyTables文档的

回答

1

我的理解建议如下。

创建表格。为每个您感兴趣的元数据创建一个列。如果您的图像大小相同,并且在创建表时已知,请创建一列数组并将其存储在那里。如果图像大小不同,请为每个图像创建一个具有唯一标识符的列(与文件名相同的功能),然后创建一个新组,并为每个图像创建一个阵列/ carray,其名称与上述表中的列表相同。

另一种选择是使用轻量级RDMS(sqlite偶数)来存储表,这将允许轻松查询/排序等,但将实际的图像数组保存在h5文件中。