2016-07-22 13 views
1

dlib検出器で学習した68個のランドマークを使用して2つの顔画像を揃えようとしています。私は画像をOpenCV Matに変換してからwarpAffineメソッドを使うことができます。私はそれで特定のメモリリークを抱えていて、dlibのみを使用できるかどうかを判断することにしました。私は、dlibライブラリには、この目的のためにいくつかの方法があることに気づいた。geometry.hdlibを使用して画像にアフィン変換を適用する

この場合、point_transform_affineオブジェクトを取得するためにfind_affine_transformメソッドを使用しています。ここで、形状とテンプレートを使用して得られた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); 

答えて

関連する問題