【问题标题】:Opencv Logistic Regression load failedOpencv 逻辑回归加载失败
【发布时间】:2017-04-21 00:47:47
【问题描述】:

我正在使用 opencv 的 cv::ml::LogisticRegression 类,并已将其序列化并使用 cv::Algorithm::save 方法将其保存到文件中,并尝试使用 cv::ml::LogisticRegression::load 将文件加载回 Ptr<LogisticRegression>,如 @ 中所述987654321@,我的保存代码是这样的:

Ptr<cv::ml::LogisticRegression> logisReg = logisticRegression(features_train, labels_train);
logisReg->save("mFileName");

并加载代码(不同的地方)

Ptr<cv::ml::LogisticRegression> logisReg = cv::ml::LogisticRegression::load("mFileName", "Logisitic Regression Classifier");

保存代码工作正常,序列化文件内容有意义(纯文本)。但是,当我尝试编译加载它时,我得到了这个错误:

main.cpp:97:5: error: no matching function for call to 'load'
    cv::ml::LogisticRegression::load("logisReg.auracle", "Logisitic Regression Classifier");
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/opt/opencv3/include/opencv2/core.hpp:3074:44: note: candidate template ignored: couldn't infer template argument '_Tp'
    template<typename _Tp> static Ptr<_Tp> load(const String& filename, const String& objname=String())
                                       ^
1 error generated.
make: *** [main.o] Error 1

【问题讨论】:

    标签: c++ opencv templates serialization namespaces


    【解决方案1】:

    您提供的文档是 3.2.0-dev 版本,具有以下功能: static Ptr<LogisticRegression> load(const String &filepath, const String &nodeName=String())

    但是 3.1 之前的版本只有一个继承的模板函数: template<typename _Tp > static Ptr<_Tp> load (const String &filename, const String &objname=String())

    我猜你使用的是 3.1 之前的 opencv lib 版本,尝试显式实例化模板函数: load<LogisticRegression>()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-21
      • 2014-01-20
      • 2018-02-26
      • 2020-01-31
      • 2012-10-04
      • 2021-11-11
      • 2018-01-26
      • 2020-03-22
      相关资源
      最近更新 更多