gpt4 book ai didi

c++ - 将 cv::FileStorage 转换为 CvFileStorage

转载 作者:行者123 更新时间:2023-11-28 07:32:41 25 4
gpt4 key购买 nike

我正在尝试将“cv::FileStorage”中包含的内容“读取”到 CvRTrees(CvStatModel 实现之一)中。

“读取”函数需要一个 CvFileStorage* 和一个 CvFileNode*(第二个参数)

我似乎可以从 cv::FileStorage 中获取 CvFileStorage,但我无法获取 CvFileNode*。

函数 (fs.getFirstTopLevelNode().node 和 fs["someName"]) 都返回一个 "const CvFileNode*"而不是 "CvFileNode*",并且(另一个解决方案)我无法到达Cv文件存储*。

目前我正在尝试的解决方案有:

string s = "some stuffs" // in the real code, "s" is actually exported from a rtree ("write" function)
cv::FileStorage fs(s, cv::FileStorage::READ + cv::FileStorage::MEMORY);
CvRTrees* rtree = new CvRTrees();
rtree->read(fs.fs,fs.fs->cvGetFileNodeByName("mytree"));

错误:

error C2027: use of undefined type 'CvFileStorage'

CvFileStorage的定义是:typedef struct CvFileStorage CvFileStorage;

string s = "some stuffs"
cv::FileStorage fs(s, cv::FileStorage::READ + cv::FileStorage::MEMORY);
CvRTrees* rtree = new CvRTrees();
rtree->read(fs.fs,fs["mytree"].node);

错误:

error C2664: 'CvRTrees::read' : cannot convert parameter 2 from 'const CvFileNode *' to 'CvFileNode *'

两种解决方案都在编译时失败(总是因为“读取”的第二个参数)。

你们知道怎么处理吗?

提前致谢。

阿乔姆

最佳答案

是的,这里有点笨拙,您必须使用重载的 * 运算符从 FileStorage 访问 CvFileNode:

FileStorage fs("my.yml", FileStorage::WRITE);
dtree.write(*fs,"dst");

关于c++ - 将 cv::FileStorage 转换为 CvFileStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com