Я пытаюсь создать матрицу 4x4 с cv::Mat(4,4,CV_64F, data_m);
, где data_m - массив с плавающей точкой
float data_m[] = {rmatrix.at<float>(0,0),rmatrix.at<float>(0,1), rmatrix.at<float>(0,2), tvec[0],rmatrix.at<float>(1,0), rmatrix.at<float>(1,1), rmatrix.at<float>(1,2), tvec[1], rmatrix.at<float>(2,0), rmatrix.at<float>(2,1), rmatrix.at<float>(2,2), tvec[2],0.f ,0.f ,0.f, 1.f};
, а rmatrix - матрица 3x3, tvec - вектор 3x1.
Однако при инициализации translation_m
cv::Mat translation_m = cv::Mat(4,4,CV_64F, data_m);
последние восемь элементов не были успешно инициализированы в матрице translation_m
. Он возвращает какое-то странное число пришельцев, например 4.59121e-41
.
Кто-нибудь знает, что здесь происходит?