init_code

This commit is contained in:
sky
2025-07-03 17:03:00 +08:00
parent a710c87a2b
commit 89766fe3d1
220 changed files with 479903 additions and 77 deletions

View File

@@ -0,0 +1,54 @@
"""Aling body models s.t. they stand exactly on the plane y=0 and save as a new data"""
import igl
import numpy as np
from pathlib import Path
import trimesh
from pygarment.data_config import Properties
def load_mesh(path):
v, f = igl.read_triangle_mesh(str(path))
return v, f.flatten(), f
def get_shift_param(body_vertices):
v_body_arr = np.array(body_vertices)
min_y = (min(v_body_arr[:, 1]))
if min_y < 0:
return abs(min_y)
return 0.0
def save_mesh(path, v, f):
igl.write_triangle_mesh(str(path), v=v, f=f, force_ascii=False)
def process_body(path_in, path_out):
body_vertices, _, body_faces = load_mesh(path_in) # self.paths.in_body_obj)
shift_y = get_shift_param(body_vertices)
# body_vertices = body_vertices * b_scale
if shift_y:
body_vertices[:, 1] = body_vertices[:, 1] + shift_y
save_mesh(path_out, body_vertices, body_faces)
if __name__ == "__main__":
system_paths = Properties('./system.json')
# body_folder_path = Path(system_paths['body_samples_path']) / 'body_shapes_and_measures_2023-12-30'
# body_objs_path = body_folder_path / 'meshes'
body_objs_path = Path('./assets/bodies')
# out_path = body_folder_path / 'meshes_aligned'
out_path = Path('./assets/bodies_aligned')
out_path.mkdir(parents=True, exist_ok=True)
# loop over all meshes
for file in body_objs_path.iterdir():
if '.obj' in file.name:
process_body(file, out_path / file.name)
print(file.name)