# OpenCV JS Load CascadeClassifier file

**URL:** <https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149>\
**Category:** Uncategorized\
**Created:** [September 11, 2022, 10:26pm UTC](https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149 "2022-09-11T22:26:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![McTrafik](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/mctrafik/32/6023_2.png) [@McTrafik](https://forum.opencv.org/u/McTrafik)\
**Post date:** [September 11, 2022, 10:26pm UTC](https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149/1 "2022-09-11T22:26:25Z")

</div>

Using OpenCV Js and Node (not browser).

Trying to load haarcascade\_frontalface\_default.xml but always get: `[ERROR:0@0.074] global /build/master-contrib_docs-lin64/opencv/modules/core/src/persistence.cpp (505) open Can't open file: 'lib/haarcascade_frontalface_default.xml' in read mode 6711208`

I can open the file just fine regularly: `readFileSync("lib/haarcascade_frontalface_default.xml")` so I know the path is correct.

I’ve tried:

- `new cv.CascadeClassifier("lib/haarcascade_frontalface_default.xml");`
- `new cv.CascadeClassifier(path.resolve("lib/haarcascade_frontalface_default.xml"));`
- `new cv.CascadeClassifier().load("lib/haarcascade_frontalface_default.xml");`

All with the same result. ☹

---

<div class="post-metadata">

**Author:** ![McTrafik](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/mctrafik/32/6023_2.png) [@McTrafik](https://forum.opencv.org/u/McTrafik)\
**Post date:** [September 11, 2022, 11:10pm UTC](https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149/2 "2022-09-11T23:10:51Z")

</div>

I see there’s: cv.FS\_createLazyFile through which I think something is loading (though nothing is working further down the line); I wish this documented better somewhere. ☹

The thing that really throws me off is notes like this:

[OpenCV: Using OpenCV.js In Node.js](https://docs.opencv.org/3.4/dc/de6/tutorial_js_nodejs.html)

where it says:

> // Load pre-trained classifier files. Notice how we reference local files using relative paths just  
> // like we normally would do  
> faceCascade.load(‘./haarcascade\_frontalface\_default.xml’);

But it’s not pointing to the fact that this only works because of `cv.FS.chdir(process.cwd())`. Except, it works for them, but when I try it I get the cryptic:

```auto
[<generic error, no stack>] {
  node: undefined,
  setErrno: [Function (anonymous)],
  errno: 44,
  message: 'FS error'
}

```

---

<div class="post-metadata">

**Author:** ![McTrafik](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/mctrafik/32/6023_2.png) [@McTrafik](https://forum.opencv.org/u/McTrafik)\
**Post date:** [September 12, 2022, 7:23am UTC](https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149/3 "2022-09-12T07:23:20Z")

</div>

Oh man. Finally made some progress:

```auto
  const emscriptenFs = cv.FS;
  const virtualMountFolder = "/local";
  emscriptenFs.mkdir(virtualMountFolder);
  emscriptenFs.mount(emscriptenFs.filesystems.NODEFS, { root: process.cwd() }, virtualMountFolder);
  emscriptenFs.chdir(virtualMountFolder);

```

And now I am able to just create the classifier: `const faceClassifier = new cv.CascadeClassifier("lib/haarcascade_frontalface_default.xml");` and this succeeds.

---

<div class="post-metadata">

**Author:** ![TheJakey](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/thejakey/32/6729_2.png) [@TheJakey](https://forum.opencv.org/u/TheJakey)\
**Post date:** [December 13, 2022, 5:16pm UTC](https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149/4 "2022-12-13T17:16:12Z")

</div>

Hey there. Got the same error, trying solution from your last comment, but got stuck at

`ERROR abort(Assertion failed: undefined). Build with -s ASSERTIONS=1 for more info.`

when calling

`emscriptenFs.mount(emscriptenFs.filesystems.NODEFS, { root: process.cwd() }, virtualMountFolder);`

I don’t understand whats going on, does it ring a bell to u?

---

<div class="post-metadata">

**Author:** ![TheJakey](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.opencv.org/thejakey/32/6729_2.png) [@TheJakey](https://forum.opencv.org/u/TheJakey)\
**Post date:** [December 14, 2022, 9:38am UTC](https://forum.opencv.org/t/opencv-js-load-cascadeclassifier-file/10149/5 "2022-12-14T09:38:39Z")

</div>

My bad. I missed that u didn’t use browser. Which makes a ton of sense 😅
