0

我想用来cv::fileStorage将校准结果保存为如下XML文件:

   cv::FileStorage fs = cv::FileStorage("calibration_result.xml",cv::FileStorage::FORMAT_XML||cv::FileStorage::WRITE);

这不起作用但是当我选择它的yml扩展名时它起作用了吗?知道为什么会这样吗?提前致谢 !

4

1 回答 1

1

试试下面的代码。它应该工作。

...
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>
于 2013-10-28T19:42:58.827 回答