智能数字图像处理:图卷积SGN代码(pytorch)之get_raw_skes_data.py解读

该博客详细介绍了如何处理智能数字图像,特别是通过Python的os库来操作数据集。主要内容包括读取skes_available_name.txt文件,创建raw_data目录,获取数据集路径,遍历文件并使用get_raw_bodies_data()方法处理骨骼数据,存储处理后的数据,并记录丢弃的帧信息。get_raw_bodies_data()方法负责读取.skeleton文件,提取关节和颜色信息,处理丢失帧,并存储每个身体的数据。
摘要由CSDN通过智能技术生成

主目录:

data文件夹目录:

首先介绍main函数

1.    skes_path = './nturgb+d_skeletons/'
    stat_path = osp.join(save_path, 'statistics')-》定义数据集路径,准备传参。

2.    if not osp.exists('./raw_data'):
        os.makedirs('./raw_data')-》如果不存在raw_data这个文件夹的话,递归创建目录raw_data

3.    skes_name_file = osp.join(stat_path, 'skes_available_name.txt')
    save_data_pkl = osp.join(save_path, 'raw_data', 'raw_skes_data.pkl')
    frames_drop_pkl = osp.join(save_path, 'raw_data', 'frames_drop_skes.pkl')-》根据路径打开这3个文件并赋值给变量。

4.frames_drop_logger = logging.getLogger('frames_drop')
    frames_drop_logger.setLevel(logging.INFO)
    frames_drop_logger.addHandler(logging.FileHandler(osp.join(save_path, 'raw_data', 'frames_drop.log')))
    frames_drop_skes = dict()-》创建丢弃帧的日志

5.get_raw_skes_data()-》调用get_raw_skes_data()方法

介绍get_raw_skes_data()方法:

1.skes_name = np.loadtxt(skes_name_file, dtype=str)-》打开skes_available_name.txt文件。

2.num_files = skes_name.size-》获取大小并赋值给变量

3. raw_skes_data = []
    frames_cnt = np.zeros(num_files, dtype=np.int)-》建立一个与skes_available_name.txt中内容大小一样的用0填充的数组。

4.for (idx, ske_name) in enumerate(skes_name):-》遍历skes_available_name.txt取出id和骨骼名。

5.bodies_data = get_raw_bodies_data(skes_path, ske_name, frames_drop_skes, frames_drop_logger)-》根据循环的遍历将骨骼文件路径,骨骼名,放弃骨骼的空字典,放弃骨骼日志文件传入get_raw_bodies_data()方法中。

6.raw_skes_data.append(bodies_data)-》将get_raw_bodies_data()方法返回结果添加到raw_skes_data数组中。

7.       frames_cnt[idx] = bodies_data['num_frames']-》将get_raw_bodies_data返回的bodies_data数组中对应位置骨骼ID添加到frames_cnt中对应的位置上。就是把骨骼id复制到frames_cnt中去。

8.if (idx + 1) % 1000 == 0:
            print('Processed: %.2f%% (%d / %d)' % \
                  (100.0 * (idx + 1) / num_files, idx + 1, num_files))-》没处理完1000个打印一下当初处理信息。

9.    with open(save_data_pkl, 'wb') as fw:
        pickle.dump(raw_skes_data, fw, pickle.HIGHEST_PROTOCOL)
    np.savetxt(osp.join(save_path, 'raw_data', 'frames_cnt.txt'), frames_cnt, fmt='%d')-》以.pkl文件的形式存储处理完的数据。


 10.   with open(frames_drop_pkl, 'wb'

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值