Аффинное преобразование для всего изображения с использованием точек изображения ?
привет,
У меня есть 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 в вектор матрицы?