save progress

This commit is contained in:
2023-02-09 16:54:16 +00:00
parent 2f4dc477bd
commit cac3ee03d9
4 changed files with 106 additions and 80 deletions
+17 -8
View File
@@ -236,7 +236,7 @@ def read_posed_garment_frame(folder, id, garment, frame, map=None, mask=None, sh
verts[mask, :] = verts[mask, :] - np.squeeze(shape_offsets)[mask, :]
if deorient:
R = scipy.spatial.transform.Rotation.from_euler(pose[:3]).inv()
R = scipy.spatial.transform.Rotation.from_euler('xyz', pose[:3]).inv()
# R = scipy.spatial.transform.Rotation.from_euler([0,0,-zrot])
verts = R.apply(verts)
@@ -244,13 +244,12 @@ def read_posed_garment_frame(folder, id, garment, frame, map=None, mask=None, sh
# can i cache map?
def read_posed_garment(folder, id, garment, map=None, mask=None, shape=None, shapedirs=None, poses=None, unshape=False, deorient=False):
pc16_path = os.path.join(folder, id, garment + '.pc16')
verts = readPC2(pc16_path, True)
# NOT WORKING WELL
def read_posed_garment(folder, id, garment, mask=None, shape=None, shapedirs=None, poses=None, unshape=False, deorient=False):
body_posed = readPC2(os.path.join(folder, id, 'Body_posed.pc16'), True)['V']
offsets = readPC2(os.path.join(folder, id, garment + '_offsets_dynamic.pc16'), True)['V']
verts = (body_posed + offsets) * mask[:, None]
if map is None:
map = sio.loadmat(os.path.join(folder, id, garment + '_map.mat'))['map'].reshape((-1))
verts = verts[:, map, :]
if unshape:
shape_offsets = np.tensordot(shape, shapedirs, axes=[[1], [2]])
@@ -258,7 +257,7 @@ def read_posed_garment(folder, id, garment, map=None, mask=None, shape=None, sha
if deorient:
for i in range(verts.shape[0]):
R = scipy.spatial.transform.Rotation.from_euler(poses[:3, i]).inv()
R = scipy.spatial.transform.Rotation.from_euler('xyz', poses[:3, i]).inv()
# R = scipy.spatial.transform.Rotation.from_euler([0,0,-zrot])
verts[i] = R.apply(verts[i])
@@ -304,6 +303,16 @@ def read_posed_body(folder, id, poses=None, deorient=False):
return verts
def read_curvatures(h5file, id, frames, neighbourhood=None):
frames_filtered = [frame for frame in frames if frame.split()[0] == id]
garment = frames_filtered[0].split()[2]
curvatures_all = []
for frame_nr in range(len(frames_filtered)):
curv = h5file.get_node(f'/{id}/{frame_nr}/{garment}/curvature_raw').read()
curvatures_all.append(curv)
return np.array(curvatures_all)
# import os
# import sys
# import numpy as np