Я пытаюсь сохранить матрицу камеры и коэффициент искажения для последующего использования, но код, который я написал, кажется, не работает. Он не хранит какие-либо данные в файле yml. Даже когда я его читаю, он ничего не вводит в указанные матрицы. Пожалуйста, помогите мне понять, если я делаю что-то неправильно. Я использую VS2010 с OpenCV 2.4.5FileStorage OpenCV
cv::Mat CameraMatrix, DistCoeffs;
CameraMatrix = (cv::Mat_<double>(3,3) << 1,2,3,4,5,6,7,8,9);
DistCoeffs = (cv::Mat_<double>(1,5) << 10, 11, 12, 13, 15);
cv::FileStorage fs("IntCali.yml", cv::FileStorage::WRITE);
fs << "CameraMatrix" << CameraMatrix;
fs << "DistCoeffs" << DistCoeffs;
fs.release();
cv::FileStorage fs2("IntCali.yml", cv::FileStorage::READ);
cv::Mat cm; fs2["CameraMatrix"] >> cm;
cv::Mat dc;
fs2["DistCoeffs"] >> dc;
fs2.release();
предоставьте свои ошибки. – Khashayar
Быстрый способ вывода OpenCV Mat заключается в следующем: cout << CameraMatrix << endl; Сделайте это для своих CameraMatrix и DistCoeffs, прежде чем записывать их в файл, чтобы проверить правильность их инициализации. Сделайте то же самое, чтобы проверить правильность их считывания. Ваш код выглядит правильно с первого взгляда ... – lightalchemist
Btw вы можете открыть файл IntCali.yml, чтобы проверить его содержимое. Это всего лишь текстовый файл. – lightalchemist