如何还原 openface.AlignDlib.align 所做的转换?
How to revert the transformation done by openface.AlignDlib.align?
我是 openface 的新手。我知道如何使用 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)
我没有检查代码是否真的有效,但我希望你能得到指导
我是 openface 的新手。我知道如何使用 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)
我没有检查代码是否真的有效,但我希望你能得到指导