【问题标题】:CascadeClassifier.load() error in release only仅发布中的 CascadeClassifier.load() 错误
【发布时间】:2017-12-07 11:38:27
【问题描述】:

我想问一下 cascadeclassfier 加载在发布时不起作用。 我使用 Microsoft Visual Studio 2010 和 OpenCV 2.4.7。

我的代码:

CascadeClassifier cascade;

if(!cascade.load("D:/data/training.xml"))
{
    printf("Error load XML!\n");
    return -1;
}

到目前为止我尝试过的事情:

  • 尝试使用“”手动指定路径
  • 试图在路径中使用 / 或 \
  • 试图授予用户权限
  • 试图在不使用绝对路径的情况下调用xml
  • 尝试使用我在搜索此错误时发现的多种代码
  • 试图通过为它们创建一个新文件夹来分离 xml

附加信息:

  • 在调试模式下运行可以 100% 完美运行
  • 在使用 Visual Studio 时在发行版中运行会触发中断
  • 使用构建时创建的 exe 运行仅显示“错误加载 XML!”

我现在真的很困惑,所以我决定问.. 之前谢谢。

【问题讨论】:

  • 确保在发布版本中,链接到 OpenCV 库的发布版本并使用发布 dll。如果混合使用 Debug 和 Release see here for one example,则会出现已知问题。
  • 感谢您的回答,这对我帮助很大:)

标签: c++ opencv cascade-classifier


【解决方案1】:

从调试模式切换到发布模式时,我遇到了类似的问题。我将配置从 Debug 复制到 Release,并在 Linker > Input > Additional Dependencies 出现错误。我已经通过将 opencv_world320d.lib 用于 Debug 模式和 opencv_world320.lib 用于 Release 模式来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2012-01-05
    相关资源
    最近更新 更多