你如何从opencv 2.2中的文件中读取内在和失真矩阵

时间:2011-07-13 04:45:14

标签: c++ opencv distortion

我已经为我的相机制作了“instinsic.xml”和“distortion.xml”。现在我正在使用OpenCV 2.2接口编写程序,因此我主要使用cv :: Mat数据结构而不是CvMat。我想将这两个文件加载到相应的cv :: Mat结构中。使用以前的OpenCV API,我会写:

CvMat* intrinsic = (CvMat*) cvLoad("Intrinsics.xml");
CvMat* distortion = (CvMat*) cvLoad("Distortions.xml");

如何在OpenCV 2.2中实现这一目标?是否有一个函数可以将xml文件加载到cv :: Mat中?我查看了所有API文档,但找不到它。

谢谢,

1 个答案:

答案 0 :(得分:6)

这样的事情对你有好处:

代码是某种样本。在OpenCV的samples目录中还有其他一些非常相关,并且在这些类型的操作中有很多帮助......

//TO WRITE
Mat myMat;
FileStorage fs(filename,FileStorage::WRITE);
fs << "MY_MAT_NAME_IN_THE_XML" << myMat;
fs.release();

//TO READ
Mat myMat;
FileStorage fs(filename,FileStorage::READ);
fs["MY_MAT_NAME_IN_THE_XML"] >> myMat;
fs.release();

我热烈建议你用fs.isOpened()测试开头,代码可以完成......

For more info, here is the doc

于连