0

「cv::FileStorage」に含まれるコンテンツを CvRTrees (CvStatModel 実装の 1 つ) に「読み取ろう」としています。

「読み取り」関数には、CvFileStorage* と CvFileNode* (2 番目のパラメーター) が必要です。

cv::FileStorage から CvFileStorage を取得できるようですが、CvFileNode* を取得できません。

関数 (fs.getFirstTopLevelNode().node および fs["someName"]) はどちらも「CvFileNode*」ではなく「const CvFileNode*」を返し、(他の解決策) CvFileStorage* の内部にアクセスできません。

私がこれまでに試している解決策があります:

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 *'

どちらのソリューションもコンパイル時に失敗します (常に "read" の 2 番目の引数が原因です)。

あなたたちはそれに対処する方法を知っていますか?

前もって感謝します。

アチョム

4

3 に答える 3