|
48 | 48 | trimmed_mean, compute_height, get_max_workers |
49 | 49 | from Pose2Sim.filtering import filter_all |
50 | 50 | from Pose2Sim.skeletons import * |
| 51 | +from Pose2Sim.Utilities.osim_to_bvh import export_to_bvh |
51 | 52 |
|
52 | 53 | import locale |
53 | 54 | locale.setlocale(locale.LC_NUMERIC, 'C') |
@@ -614,6 +615,7 @@ def kinematics_all(config_dict): |
614 | 615 | use_augmentation = config_dict.get('kinematics', {}).get('use_augmentation', True) |
615 | 616 | use_simple_model = config_dict.get('kinematics', {}).get('use_simple_model', False) |
616 | 617 | filter_ik = config_dict.get('kinematics', {}).get('filter_ik', False) |
| 618 | + make_bvh = config_dict.get('kinematics', {}).get('make_bvh', True) |
617 | 619 | multi_person = config_dict.get('project', {}).get('multi_person', False) |
618 | 620 | parallel_workers = config_dict.get('kinematics', {}).get('parallel_workers_kinematics', 'auto') |
619 | 621 | right_left_symmetry = config_dict.get('kinematics', {}).get('right_left_symmetry', True) |
@@ -754,3 +756,13 @@ def kinematics_all(config_dict): |
754 | 756 | config_dict['filtering']['type'] = config_dict.get('kinematics', {}).get('ik_filter_type', 'acc_minimizing') |
755 | 757 |
|
756 | 758 | filter_all(config_dict) |
| 759 | + |
| 760 | + if make_bvh: |
| 761 | + logging.info(f"\nExporting OpenSim results to BVH files...") |
| 762 | + for trc_file in trc_files: |
| 763 | + osim_path = (kinematics_dir / (trc_file.stem + '.osim')).resolve() |
| 764 | + mot_path = Path(kinematics_dir, trc_file.stem + '.mot').resolve() |
| 765 | + bvh_path = Path(kinematics_dir, trc_file.stem + '_ik.bvh').resolve() |
| 766 | + export_to_bvh( |
| 767 | + model_path=osim_path, output_path=bvh_path, motion_path=mot_path) |
| 768 | + |
0 commit comments