save progress
This commit is contained in:
+20
-6
@@ -1,4 +1,5 @@
|
||||
import os
|
||||
import scipy
|
||||
import numpy as np
|
||||
import scipy.io as sio
|
||||
from struct import pack, unpack
|
||||
@@ -222,16 +223,20 @@ def _todict(matobj):
|
||||
|
||||
|
||||
# can i cache map?
|
||||
def read_posed_garment_frame(folder, id, garment, frame, mask=None, shape=None, shapedirs=None, unshape=False):
|
||||
def read_posed_garment_frame(folder, id, garment, frame, map, mask=None, shape=None, shapedirs=None, pose=None, unshape=False, deorient=False):
|
||||
pc16_path = os.path.join(folder, id, garment + '.pc16')
|
||||
map = sio.loadmat(os.path.join(folder, id, garment + '_map.mat'))['map'].reshape((-1))
|
||||
verts = readPC2Frame(pc16_path, frame, True)
|
||||
verts = verts[:, map, :]
|
||||
verts = verts[map, :]
|
||||
|
||||
if unshape:
|
||||
shape_offsets = np.tensordot(shape, shapedirs, axes=[[1], [2]])
|
||||
verts[mask, :] = verts[mask, :] - np.squeeze(shape_offsets)[mask, :]
|
||||
|
||||
|
||||
if deorient:
|
||||
R = scipy.spatial.transform.Rotation.from_euler(pose[:3])
|
||||
# R = scipy.spatial.transform.Rotation.from_euler([0,0,-zrot])
|
||||
verts = R.apply(verts)
|
||||
|
||||
return verts
|
||||
|
||||
|
||||
@@ -241,15 +246,24 @@ def read_garment_mask(folder, id, garment):
|
||||
return mask
|
||||
|
||||
|
||||
# can i cache mask?
|
||||
def read_garment_template(folder, id, garment, mask):
|
||||
offsets_static = sio.loadmat(os.path.join(folder, id, garment + '_offsets_static.mat'))['label'][:,:3]
|
||||
body_static = sio.loadmat(os.path.join(folder, id, 'info_body.mat'))['B']
|
||||
verts_static = (body_static + offsets_static) * mask[:, np.newaxis]
|
||||
return verts_static
|
||||
|
||||
|
||||
|
||||
def read_posed_body_frame(folder, id, frame, pose=None, deorient=False):
|
||||
pc16_path = os.path.join(folder, id, 'Body_posed.pc16')
|
||||
verts = readPC2Frame(pc16_path, frame, True)
|
||||
|
||||
if deorient:
|
||||
R = scipy.spatial.transform.Rotation.from_euler(pose[:3])
|
||||
# R = scipy.spatial.transform.Rotation.from_euler([0,0,-zrot])
|
||||
verts = R.apply(verts)
|
||||
|
||||
return verts
|
||||
|
||||
# import os
|
||||
# import sys
|
||||
# import numpy as np
|
||||
|
||||
Reference in New Issue
Block a user