2012-10-10 20 views
5

私は、その顔の再構成と一緒に顔の形を持っており、私は最初の形の対応するイメージをモデル化したいと思います。OpenCV - 薄板スプラインワーピングのための適切な実装

基本的に、ポイントを元の形状から顔の再構成によって示される位置に移動したいと思います。私は薄板スプラインワープを使ってこれをやろうとしましたが、この実装はhttp://ipwithopencv.blogspot.ro/2010/01/thin-plate-spline-example.htmlです。

しかし、私が望むようには機能しません。私は、画像のコーナーを固定して、顔を定義する対応する点を動かすだけです。私はこれを2枚の写真で説明することができます。最初の写真では、元の顔の形状が再構成された形になっています。 enter image description here

ここでは、上記のリンクのコードを使用して、変更したい画像と結果の画像があります。緑色の点は元の顔の点を表し、青色の点は新しい位置をマークし、それらの位置を変更して顔を伸ばしたい場所を示します。

enter image description here

私が欲しいのは、それが変形見えるように青の点に緑色のポイントを移動するだけです。あなたがテストしたこれを行う方法がわかっていますか?

答えて

1

コーナーを固定するのは簡単です。 4つのイメージコーナーに4つの追加の連絡先を追加するだけです。あなたの例の面では:

はもちろん、 は、画像の幅と高さ で、
iP.push_back(cv::Point(0, 0)); 
iiP.push_back(cv::Point(0, 0)); 
iP.push_back(cv::Point(0, height-1)); 
iiP.push_back(cv::Point(0, height-1)); 
iP.push_back(cv::Point(width-1, 0)); 
iiP.push_back(cv::Point(width-1, 0)); 
iP.push_back(cv::Point(width-1, height-1)); 
iiP.push_back(cv::Point(width-1, height-1)); 

は像高

です
関連する問題