0
我是openface的新用户。我知道如何使用openface.AlignDlib.align()获得一个对齐的人脸,但无论如何将脸部转换回其原始形状?如何恢复由openface.AlignDlib.align完成的转换?
我是openface的新用户。我知道如何使用openface.AlignDlib.align()获得一个对齐的人脸,但无论如何将脸部转换回其原始形状?如何恢复由openface.AlignDlib.align完成的转换?
你基本上需要的是一个逆仿射变换。所以,我们需要得到一个逆变换矩阵,然后应用warpAffine
。这里是一块align()
code:
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)
我没有检查代码是否实际工作,但我希望你可以得到方向
这很有道理,感谢您的帮助! – windancer
它与保存'rgbImg'到'.align()'不同吗? – Marat
只是好奇,你的问题与opencv有什么关系? –
@Marat:假设我对对齐的图像进行了一些修改,并且当我回到原始的rbgImg时,我想保留该修改。 – windancer