【问题标题】:OpenCV.js Assertion failed in detectMultiScaleOpenCV.js 断言在 detectMultiScale 中失败
【发布时间】:2018-10-13 06:58:56
【问题描述】:

所以我对 JavaScript 比较陌生,我正在尝试为我正在开发的 Web 应用程序学习 OpenCV.js。我一直在关注this 之类的教程,试图了解它是如何工作的。

但是,我收到了下面的错误,其中没有加载 haar 级联文件,我似乎无法修复它。

Error: Assertion failed (!empty()) in detectMultiScale, file /build/master-contrib_docs-lin64/opencv/modules/objdetect/src/cascadedetect.cpp

我已寻找解决此问题的方法,大多数人建议您在加载级联文件时应使用完整目录。我试过直接引用文件并使用完整的文件路径,这两种方法似乎都不适合我。

这就是我尝试加载文件的方式。

let classifier = new cv.CascadeClassifier();

// Load the haarcascade file
let utils = new Utils('errorMessage');
let faceCascadeFile = 'http://localhost/eeu8cb/xml/haarcascade_frontalface_default.xml';
utils.createFileFromUrl(faceCascadeFile, faceCascadeFile, () => {
    classifier.load(faceCascadeFile)
});

// Checks if the haarcascade file has failed to load
if(!classifier.load(faceCascadeFile)){
    console.log('failed to load file.')
}

我进行了一些错误检查,确认文件没有被加载。任何帮助都会受到赞赏,干杯。

【问题讨论】:

  • 你试过从相对路径加载吗?
  • 如下所述,如果您从 http:// 加载文件,则需要使用一些 Web 服务器,因此在节点 http.server 中

标签: javascript html opencv


【解决方案1】:

几个月前,我使用这些教程在 OpenCV.js 上工作,我记得在不使用 HTTPS 协议时加载文件时出现问题,我使用 IIS Express 解决了我的问题。

所以尝试使用网络服务器。

【讨论】:

  • 我一直在使用 Web 服务器 (xampp),但它不是 https。我已经设法让 https 工作,但它仍然无法加载文件。
  • 检查您是否可以通过 Web 浏览器访问 Haar_cascade.xml 文件并进行查询。尝试按照 Pari Baker 的建议使用相对路径进行文件加载。
  • 我可以通过网络浏览器访问级联文件就好了,使用相对路径似乎不起作用。我做了一些更乱的事情,我认为问题出在 createFileFromUrl 上,经过一些检查后它实际上并没有执行该语句。
  • 如果您尝试以这种方式加载它?分类器.load('xml/haarcascade_frontalface_default.xml');
  • 可能是xml文件的问题?
猜你喜欢
  • 2021-11-08
  • 1970-01-01
  • 2021-02-26
  • 2021-06-30
  • 1970-01-01
  • 2016-08-02
  • 2019-06-07
  • 1970-01-01
  • 2011-05-27
相关资源
最近更新 更多