私はOpenCV2を初めて使用し、感情認識のプロジェクトに取り組んでおり、参照顔画像に対して顔画像を位置合わせしたいと考えています。回転に移る前に、画像の変換を機能させたいのですが。現在のアイデアは、x座標とy座標の両方で限られた範囲内で検索を実行し、差の2乗の合計をエラーメトリックとして使用して、画像を位置合わせするための最適なx/yパラメーターを選択することです。OpenCVのface_cascade関数を使用して顔の画像を検出しています。すべての画像のサイズが固定(128x128)に変更されています。質問:画像をx軸とy軸の両方で正/負の方向にシフトするには、マット画像のどのパラメータを変更する必要がありますか?setImageROIはMatデータ型でサポートされなくなったと思いますか?両方の面のROIを利用できますが、使用方法がわかりません。
void alignImage(vector<Rect> faceROIstore, vector<Mat> faceIMGstore)
{
Mat refimg = faceIMGstore[1]; //reference image
Mat dispimg = faceIMGstore[52]; // "displaced" version of reference image
//Rect refROI = faceROIstore[1]; //Bounding box for face in reference image
//Rect dispROI = faceROIstore[52]; //Bounding box for face in displaced image
Mat aligned;
matchTemplate(dispimg, refimg, aligned, CV_TM_SQDIFF_NORMED);
imshow("Aligned image", aligned);
}
このアプローチのアイデアは、OpenCV2.4を使用してWindowsで作業しているRichardSzeliskiによる画像配置チュートリアルに基づいています。どんな提案でも大歓迎です。