def DataRowFromAFW(anno, root=''): # Assume data comming from parsed anno-v7.mat file.
name = str(anno[0][0])
bbox = anno[1][0][0]
# yaw, pitch, roll = anno[2][0][0][0]
lm = anno[3][0][0] # 6 landmarks
if np.isnan(lm).any():
return None # Fail
d = DataRow()
d.path = os.path.join(root, name).replace("\\", "/")
d.name = os.path.split(d.path)[-1]
d.image = cv2.imread(d.path)
d.leftEye = (float(lm[0][0]), float(lm[0][1]))
d.rightEye = (float(lm[1][0]), float(lm[1][1]))
d.middle = (float(lm[2][0]), float(lm[2][1]))
d.leftMouth = (float(lm[3][0]), float(lm[3][1]))
# skip point 4 middle mouth - We take 0 left eye, 1 right eye, 2 nose, 3 left mouth, 5 right mouth
d.rightMouth = (float(lm[5][0]), float(lm[5][1]))
return d
评论列表
文章目录