У меня проблема с C++. Моя идея - заполнить внутреннюю матрицу предопределенными значениями для калибровки камеры, за исключением того, что я, похоже, не делаю это правильно.Назначение значений на матрице
Mat intrinsic_Matrix(3,3, CV_64F);
float fx = (4032 * 4)/6.69; //2410.76
float fy = (3024 * 4)/5.55; //2179.45
float cx = 2016.0;
float cy = 1512.0;
cout << intrinsic_Matrix << endl;
cout << endl;
intrinsic_Matrix.at<float>(0,0) = fx;
intrinsic_Matrix.at<float>(0,1) = 0.0;
intrinsic_Matrix.at<float>(0,2) = cx;
intrinsic_Matrix.at<float>(1,0) = 0.0;
intrinsic_Matrix.at<float>(1,1) = fy;
intrinsic_Matrix.at<float>(1,2) = cy;
intrinsic_Matrix.at<float>(2,0) = 0.0;
intrinsic_Matrix.at<float>(2,1) = 0.0;
intrinsic_Matrix.at<float>(2,2) = 1.0;
cout << intrinsic_Matrix << endl;
calibrateCamera(frameWorldPoints, bothImagePoints, cvSize(referimages[0].image.cols, referimages[0].image.rows), intrinsic_Matrix, distortion_coeffs, rvecs, tvecs, CV_CALIB_USE_INTRINSIC_GUESS);
Выход на обоих отпечатках мало смысла. Похоже, я смотрю на значения указателя или неинициализированные значения. Кроме того, opencv выдает исключение «внутренняя матрица не правильное», когда я пытаюсь его откалибровать, поэтому я уверен, что это не значит, что я печатаю это неправильно.
работал, спасибо. :) – Kronephon