如何裁剪三角形

时间:2015-11-06 07:33:17

标签: c++ opencv opengl 3d normalization

我正在研究一些“面部规范化”项目。 我到现在所做的是:

  1. 面部检测
  2. 面部标志检测(68)
  3. 通过连接几个地标(Delaunay Triangulation - > AAM)拆分面部是几个三角形
  4. 在3D中创建一个通用面部的3D模型(由68(与地标相同)点组成)并且还进行了一些Delaunay三角剖分
  5. 现在我需要做什么: 我知道所有Landmark坐标和所有3D坐标,所以我想在2D中裁剪每个三角形并将其放在3D通用模型的正确位置,以生成检测到的面部的3D模型。

    问题: 1.)有没有人知道通过了解所有三个坐标来裁剪单个三角形的方法? 2.)我必须使用什么样的转换来将复制的三角形“复制”在通用3D模型的正确位置?

    我用c ++编程并使用dlib和openCV进行面部标志检测,而在3D方面我正在使用openGL

    编辑: 也许最好“看到”问题。这就是我已经

    enter image description here

    现在我只想分别裁剪所有这些三角形。那么如何从一张照片中裁剪一个三角形(当我知道所有3个坐标时)并在另一个窗口中保护它?

1 个答案:

答案 0 :(得分:0)

为了裁剪三角形,我们需要使用warpaffine方法。

http://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/warp_affine/warp_affine.html

jsonObject