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

Ara*_*ras 2 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");
Run Code Online (Sandbox Code Playgroud)

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

谢谢,

jma*_*tel 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();
Run Code Online (Sandbox Code Playgroud)

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

有关详细信息,请参阅文档

朱利安,