0

我已经多次使用 Python 中的 HDF5,通过h5py,我被它与 NumPy 的平滑集成宠坏了。现在,在 C/C++ 领域,我正在尝试在 HDF5 存储中保存和加载图像数据,但我无法弄清楚如何指定图像数据的步幅。

读取和写入维度数据(Python 中的矩阵形状)非常简单;我是这样读的:

constexpr std::size_t NDIMS = 3;
hid_t space_id = H5Dget_space(dataset_id);
hsize_t dims[NDIMS];
H5Sget_simple_extent_dims(space_id, dims, NULL);

…并以类似方式编写(对于图像实例input):

constexpr std::size_t NDIMS = 3;
hsize_t dims[NDIMS] = { static_cast<hsize_t>(input.dim(0)),
                        static_cast<hsize_t>(input.dim(1)),
                        static_cast<hsize_t>(input.dim(2)) };
/// first arg here is rank (aka NDIMS)
hid_t space_id      = H5Screate_simple(NDIMS, dims, NULL);

…我能找到的 HDF5 代码示例要么是完全微不足道的示例——其中正在写入或读取的数据非常小且大小已知——要么是非常先进且高于我当前的薪酬等级,例如h5pyortables源。我正在寻找一个简单的示例,说明如何将矩阵步幅数据映射到 HDF5 API。

4

0 回答 0