2016-07-22 104 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); 

回答