我想用来cv::fileStorage
将校准结果保存为如下XML
文件:
cv::FileStorage fs = cv::FileStorage("calibration_result.xml",cv::FileStorage::FORMAT_XML||cv::FileStorage::WRITE);
这不起作用但是当我选择它的yml
扩展名时它起作用了吗?知道为什么会这样吗?提前致谢 !
试试下面的代码。它应该工作。
...
FileStorage fs("calibration_result.xml", FileStorage::WRITE);
Mat R = Mat_<uchar >::eye (3, 3),
T = Mat_<double>::zeros(3, 1);
fs << "R" << R; // Write cv::Mat
fs << "T" << T;
fs.release();
...
我已经对其进行了测试,它会写入包含内容的文件:
<?xml version="1.0"?>
<opencv_storage>
<R type_id="opencv-matrix">
<rows>3</rows>
<cols>3</cols>
<dt>u</dt>
<data>
1 0 0 0 1 0 0 0 1</data></R>
<T type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>d</dt>
<data>
0. 0. 0.</data></T>
</opencv_storage>