OpenCV может сериализовать (сохранять) свои объекты в форматах JSON
, XML
или YAML
. Вы можете использовать любые редакторы, которые понимают эти форматы, чтобы читать эти файлы, или использовать OpenCV для загрузки данных (десериализации) из этих файлов. Подробное объяснение того, как это делается, можно найти здесь. Короче говоря, чтобы сохранить данные в xml
-файле, вы должны вызвать
cv::FileStorage fs("/path/to/file.xml", cv::FileStorage::WRITE); // create FileStorage object
cv::Mat cameraM; // matrix, which you need to save, do not forget to fill it with some data
fs << "cameraMatrix" << cameraM; // command to save the data
fs.release(); // releasing the file.
Если вы хотите использовать JSON
или YAML
, просто измените расширение на .json
или .yaml/.yml
- openCV автоматически поймет ваши намерения.
Главное - это команда
fs << "cameraMatrix" << cameraM;
строка "cameraMatrix"
- это имя тега, под которым эта матрица будет храниться и с помощью которого эту матрицу можно будет найти позже в файле.
Обратите внимание, что формат xml
не позволит вам использовать имена тегов с пробелами и некоторыми специальными символами, поскольку разрешены только буквенно-цифровые значения, точки, дефисы и подчеркивания (подробности см. В спецификации XML
), а в YAML
и JSON
вы можете иметь что-то вроде
fs << "Camera Matrix" << cameraM;
person
John Smith
schedule
07.11.2018