Как вы читаете внутренние матрицы и матрицы искажений из файла в opencv 2.2 - PullRequest
2 голосов
/ 13 июля 2011

У меня уже есть "instinsic.xml" и "distortion.xml", которые были созданы для моей камеры.Сейчас я пишу программу с использованием интерфейса OpenCV 2.2, и поэтому я в основном работаю со структурой данных cv :: Mat, а не с CvMat.Я хочу загрузить эти два файла в соответствующую структуру cv :: Mat.С предыдущим API для OpenCV я бы написал:

CvMat* intrinsic = (CvMat*) cvLoad("Intrinsics.xml");
CvMat* distortion = (CvMat*) cvLoad("Distortions.xml");

Как мне добиться этого в OpenCV 2.2?Есть ли функция, которая будет загружать файл XML в cv :: Mat для меня?Я просмотрел всю документацию по API, но не смог ее найти.

Спасибо,

1 Ответ

6 голосов
/ 13 июля 2011

Что-то вроде этого должно быть хорошо для вас:

Код является своего рода примером.В каталоге примеров OpenCV есть и другие, которые действительно актуальны и очень помогают в этих видах манипуляций ...

//TO WRITE
Mat myMat;
FileStorage fs(filename,FileStorage::WRITE);
fs << "MY_MAT_NAME_IN_THE_XML" << myMat;
fs.release();

//TO READ
Mat myMat;
FileStorage fs(filename,FileStorage::READ);
fs["MY_MAT_NAME_IN_THE_XML"] >> myMat;
fs.release();

Я настоятельно советую вам проверить открытие с помощью fs.isOpened (), а также:код может быть завершен ...

Для получения дополнительной информации вот документ

Julien,

...