У меня возникла проблема с записью более одной переменной Mat в файл XML с использованием файлового архива в opencv. Я использую VC++ 2012, и я могу написать каждый Mat в отдельном XML-файле без каких-либо проблем. но когда я пытаюсь написать второй объект Mat, он генерирует исключение как: Необработанное исключение в 0x000007FEFD06B3DD в test.exe: исключение Microsoft C++: cv :: Исключение в ячейке памяти 0x00000000002ABE70., записывающий более одной переменной Mat в файл XML с использованием filestorage в opencv
Я нашел эту тему один раз здесь, но ответы мне не помогли. часть кода, trows исключение как:
FileStorage fs("c:\\test.xml", FileStorage::WRITE);
Mat cameraMatrix = (Mat_<double>(3,3) << 1000, 0, 320, 0, 1000, 240, 0, 0, 1);
Mat distCoeffs = (Mat_<double>(5,1) << 0.1, 0.01, -0.001, 0, 0);
fs<<"cameraMatrix" << cameraMatrix ;
fs<< "distCoeffs" << distCoeffs;
fs.release();
Исключение брошено на второй фс < <:
fs<< "distCoeffs" << distCoeffs;
могли бы вы помочь мне с этим. Я беру этот код из образца в opencv документе.
Запустите отладку и получите сообщение об ошибке. Вы уверены, что вы связываете OpenCV, построенную с компилятором vc11? – Miki
Я уже запускаю его в режиме отладки, и я использую много других opencv-функций без каких-либо проблем, поэтому я уверен, что построено правильно. Также я упомянул об ошибке в своем основном сообщении. – MoMika
Код работает нормально. Хотя вы, вероятно, захотите изменить папку назначения, так как у вас, вероятно, нет доступа на запись к «C:». Попробуйте просто «FileStorage fs (« test.xml », FileStorage :: WRITE);', файл будет находиться в каталоге проекта. Тот факт, что некоторые функции уже работают, не является гарантией того, что вы правильно связаны. Чтобы быть уверенным, можете ли вы показать свои «Библиотечные каталоги»? – Miki