У меня есть 2 кадра видеопотока, сделанные движущейся (очень медленной) камерой; после использования (через OpenCV) алгоритма SIFT и findHomography Функция OpenCv У меня есть матрица преобразования, которая описывает движение, выполняемое камерой между 2 кадрами. то, что я хотел бы сделать, это найти точку первого кадра во второй: так что мой код:Ошибка преобразования вектора через матрицу гомографии - C++ OpenCV
H = findHomography(point1, point2, CV_RANSAC); //compute the transformation matrix using the
// matching points (the matrix is correct, i checked it)
Mat dstMat(3, 1, H.type());
vector<Point3f> vec;
Mat srcMat(3, 1, H.type());
vec.push_back(Point3f(Ptx,Pty,-1)); // fill the 3x1 vector with the coordinate
// of the interest point in frame 1
srcMat= Mat(vec).reshape(1).t(); //conversion of vec in Mat (the vector is correct, i checked it)
dstMat = H*srcMat; //compute the arrival point in frame 2 // ERROR
Но, где написано ошибка, я получаю следующее сообщение об ошибке: OpenCV Error : Assertion failed (type == B.type() & & (тип == CV_32FC1 || тип == CV_64FC1 || тип == CV_32FC2 || тип == CV_64FC2)) в gemm, file/tmp/buildd/ros- fuerte-opencv2-2.4.2-1precise-20130312-1306/modules/core/src/matmul.cpp, строка 711 завершение вызова после вызова экземпляра 'cv :: Exception' what():/tmp/buildd/ROS-Фуерт-opencv2-2.4.2-1precise-20130312-1306/модули/ядро / SRC/matmul.cpp : 711: ошибка: (-215) type == B.type() & & (type == CV_32FC1 || type == CV_64FC1 || type == CV_32FC2 || тип == CV_64FC2) в функции ГЭММ
Прерванный (ядро сбрасывали)
Почему?