【只谈干货】读取ITOP数据集中的HDF5文件

ITOP是斯坦福大学开源的人体关节检测数据集,包含RGB图、深度图和点云,下载链接如下:
https://www.alberthaque.com/projects/viewpoint_3d_pose/
关于读取HDF5文件所需库的下载安装可以参考这篇文章:
https://blog.csdn.net/ys578676728/article/details/104732140

1. ReadHDF5

我写了一个class用来读取ITOP数据集中的各种格式文件,直接上代码:

read_hdf5.h

#ifndef READ_HDF5_H
#define READ_HDF5_H

#include <iostream>
#include <vector>
#include "H5Cpp.h"
#include "params.h"

using namespace H5;
using namespace std;

const int BATCH = 1;   // how many frames of data

class ReadHDF5
{
   
    public:
        ReadHDF5(H5File, H5File, int);
        ~ReadHDF5();

        int readValidIndex();  // return num of valid data
        void readDepthMap(vector<vector<float>>&, int);
        void read2DCoord(vector<vector<int>>&, int);
        void read3DCoord(vector<vector<float>>&, int);

        int *is_valid_;
        int num_;

    private:
        DataSet dataset1_0_;     // depth_maps
        DataSet dataset2_0_;     // is_valid
        DataSet dataset2_1_;     // image_coordinates (2D)
        DataSet dataset2_2_;     // real_world_coordinates (3D)
};

#endif

params.h (相关参数)

#ifndef PARAMS_H
#define PARAMS_H

const int HEIGHT = 240;
const int WIDTH = 320;
const int NJOINTS = 15;

#endif

read_hdf5.cpp

构造参数n:全部图片/坐标的数量(39795 for side training data)
函数形参idx: 从第idx个图片/坐标开始读取
全局变量BATCH: 一次读取BATCH个图片、坐标

#include "include/read_hdf5.h"

ReadHDF5::ReadHDF5(H5File file_1, H5File file_2, int n) {
   
    dataset1_0_ = file_1.openDataSet("data");
    dataset2_0_ = file_2.openDataSet("is_valid");
    dataset2_1_ = file_2.openDataSet("image_coordinates");
    dataset2_2_ = file_2.openDataSet("real_world_coordinates");
    num_ = n
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值