2016-07-22 105 views
1

我正在寻找使用由dlib探测器学习的68个地标来对齐两个人脸图像。我知道我可以将图像转换为OpenCV Mat,然后使用warpAffine方法。我有一定的内存泄漏,并决定是否只使用dlib是可能的。我注意到dlib库在这方面有geometry.h中的一些方法。使用dlib对图像应用仿射变换

为此,我使用find_affine_transform方法得到一个point_transform_affine对象,其中我发现使用形状和模板获得的3点之间的仿射变换。在文档中,我们可以使用这个对象来对点向量应用变换。但是,我一直无法找到它的一些例子。

  1. 你能告诉我如何应用转化学习?
  2. 其次,我有一个图像加载array2d对象。有没有办法从array2d到点矢量?

下面列出了find_affine_transform的一些初始代码。

std::vector<dlib::vector<double,2>> TemplateLandmarks; 
std::vector<dlib::vector<double,2>> ObtainedLandmarks; 
// push_back the specific coordinates in the above vectors 

array2d<bgr_pixel> img; 
// read the image from a file path using load_image 

// learning the best transformation map 
point_transform_affine H = find_affine_transform (ObtainedLandmarks , TemplateLandmarks); 

回答