def getShape3D(mean3DShape, blendshapes, params):
#skalowanie
s = params[0]
#rotacja
r = params[1:4]
#przesuniecie (translacja)
t = params[4:6]
w = params[6:]
#macierz rotacji z wektora rotacji, wzor Rodriguesa
R = cv2.Rodrigues(r)[0]
shape3D = mean3DShape + np.sum(w[:, np.newaxis, np.newaxis] * blendshapes, axis=0)
shape3D = s * np.dot(R, shape3D)
shape3D[:2, :] = shape3D[:2, :] + t[:, np.newaxis]
return shape3D
评论列表
文章目录