我是openface 的新手。我知道如何使用 openface.AlignDlib.align() 获得对齐的人脸,但是有没有办法将人脸转换回原来的形状?
您基本上需要的是逆仿射变换。所以,我们需要得到一个逆变换矩阵,然后应用warpAffine
。这是一段align()
代码:
npLandmarkIndices = np.array(landmarkIndices)
H = cv2.getAffineTransform(npLandmarks[npLandmarkIndices],
imgDim * MINMAX_TEMPLATE[npLandmarkIndices])
thumbnail = cv2.warpAffine(rgbImg, H, (imgDim, imgDim))
H
没有存储在任何地方,所以我们需要学习变换矩阵:
H_reverse = cv2.getAffineTransform(
imgDim * MINMAX_TEMPLATE[npLandmarkIndices],
npLandmarks[npLandmarkIndices])
inverse_projection = cv2.warpAffine(thumbnail, H_reverse, rgbImg.shape)
我没有检查代码是否真的有效,但我希望你能得到指导
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句