【问题标题】:How to revert the transformation done by openface.AlignDlib.align?如何恢复由 openface.AlignDlib.align 完成的转换?
【发布时间】:2017-03-01 01:34:14
【问题描述】:

我是openface 的新手。我知道如何使用 openface.AlignDlib.align() 获得对齐的脸,但是无论如何可以将脸转换回原来的形状?

【问题讨论】:

  • 与将rgbImg 传递给.align() 有何不同?
  • 只是好奇,你的问题和opencv有什么关系?
  • @Marat:假设我对对齐的图像进行了一些修改,当我回到原始 rbgImg 时我想保留该修改。

标签: python opencv face-recognition


【解决方案1】:

您基本上需要的是逆仿射变换。所以,我们需要得到一个逆变换矩阵,然后应用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)

我没有检查代码是否真的工作,但我希望你能得到方向

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 2018-04-17
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多