2

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

谢谢,

4

1 回答 1

6

这样的事情应该对你有好处:

该代码是某种示例。OpenCV 的示例目录中还有其他一些非常相关的内容,并且在这些类型的操作中提供了很多帮助......

//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() 测试打开,代码可以完成......

有关更多信息,这里是文档

朱利安,

于 2011-07-13T08:14:27.067 回答