我已经为我的相机制作了“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文档,但找不到它。
谢谢,
答案 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
于连