violence666 Ответов: 1

Аффинное преобразование для всего изображения с использованием точек изображения ?


привет,

У меня есть 2 набора точек изображения (x, y) из 2 изображений (ImgX, ImgY)

Я хотел бы использовать эти точки изображения и найти аффинное преобразование между двумя изображениями.

В getAffineTransform (функций) в формате OpenCV дает мне матрицу отдельные точки изображения вместо окончательной матрицы, которую я могу применить ко всему изображению. Итак, как же мне получить окончательную аффинную матрицу преобразования, которую можно применить к изображению?

Что я уже пробовал:

vector<vector < Point2f > > imagePoints; //imagePoints[0] and imagePoints[1] are initilaized with x y values 
 
 Mat view ;  //ImgX is also loaded
 Mat viewGray = Mat::zeros( view.rows, view.cols, view.type() );

for (int j =0; j< imagePoints[0].size(); j++)
    {
       cv::Mat affImg= getAffineTransform( & imagePoints[0][j], & imagePoints[1][j]);
       cv::warpAffine(view,viewGray,affImg, view.size());
       showImage("Affine transform", viewGray);
       cv::waitKey(0);
    }


так, в приведенном выше примере, мне нужно, чтобы Матрица affImg push_back в вектор матрицы?

1 Ответов