加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OpenCV中.xml .yml .yaml 文件的读写操作(矩阵读写)。

发布时间:2020-12-16 09:18:15 所属栏目:百科 来源:网络整理
导读:1. 这是做相机标定的结果.xml文件 保存部分。 #include "opencv2/opencv.hpp"pusing namespace cv;/pFileStorage camcalibrate("camcalibrate.xml",FileStorage::WRITE);cv::Mat cameraMatrix= cameraCalibrator.getCameraMatrix();cv::Mat DistCoeffsMatrix

1. 这是做相机标定的结果.xml文件 保存部分。
#include "opencv2/opencv.hpp"
<p>using namespace cv;
</p>FileStorage camcalibrate("camcalibrate.xml",FileStorage::WRITE);


cv::Mat cameraMatrix= cameraCalibrator.getCameraMatrix();
cv::Mat DistCoeffsMatrix= cameraCalibrator.getDistCoeffs();

camcalibrate<< "cameraMatrix" << cameraMatrix << "distCoeffs" << DistCoeffsMatrix.t();


camcalibrate.release();

cv::waitKey();


文件结果如下:

<?xml version="1.0"?>
<opencv_storage>
<read>"camera calibration by kint at 05.02.03"</read>
<imageCount>12</imageCount>
<cameraMatrix type_id="opencv-matrix">
 <rows>3</rows>
 <cols>3</cols>
 <dt>d</dt>
 <data>
 5.0519443370436323e+02 0. 3.2083884160474554e+02 0.
 5.0285768483869174e+02 2.3831697216475899e+02 0. 0. 1.</data></cameraMatrix>
<distCoeffs type_id="opencv-matrix">
 <rows>5</rows>
 <cols>1</cols>
 <dt>d</dt>
 <data>
 -9.2216292456289706e-02 6.5000304572855785e-02
 -6.3123997885573520e-04 3.2158869444328347e-03
 5.7265487017375147e-02</data></distCoeffs>
</opencv_storage>


2. 过程中出现的问题:

1)FileStorage的作用域:

using namespace cv;  或  cv::FileStorage camcalibrate("camcalibrate.xml",cv::FileStorage::WRITE);//后一个容易忽略 

2) FileStorage 的camcalibrate.xml 文件中未保存有数据。

    camcalibrate.release();  要有。。   //cv::waitKey(); 在之前先关闭 FileStorage 文件

详细参考:
http://blog.csdn.net/yang_xian521/article/details/6897684
http://blog.csdn.net/mmjwung/article/details/6913540

http://docs.opencv.org/modules/core/doc/xml_yaml_persistence.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读