# node-opencv **Repository Path**: james_hello/node-opencv ## Basic Information - **Project Name**: node-opencv - **Description**: OpenCV Bindings for node.js - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-07-30 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # node-opencv [![Build Status](https://secure.travis-ci.org/peterbraden/node-opencv.svg)](http://travis-ci.org/peterbraden/node-opencv) [![Coverage](http://codecov.io/github/peterbraden/node-opencv/coverage.svg?branch=master)](https://codecov.io/gh/peterbraden/node-opencv) [OpenCV](http://opencv.org) bindings for Node.js. OpenCV is the defacto computer vision library - by interfacing with it natively in node, we get powerful real time vision in js. People are using node-opencv to fly control quadrocoptors, detect faces from webcam images and annotate video streams. If you're using it for something cool, I'd love to hear about it! ## Install You'll need OpenCV 2.3.1 or newer installed before installing node-opencv. Note that OpenCV 3.x is not yet fully supported. ## Specific for macOS Install OpenCV using brew ```bash brew tap homebrew/science brew install opencv@2 brew link --force opencv@2 ``` ## Specific for Windows 1. Download and install OpenCV (Be sure to use a 2.4 version) @ http://opencv.org/releases.html For these instructions we will assume OpenCV is put at C:\OpenCV, but you can adjust accordingly. 2. If you haven't already, create a system variable called OPENCV_DIR and set it to C:\OpenCV\build\x64\vc12 Make sure the "x64" part matches the version of NodeJS you are using. Also add the following to your system PATH ;%OPENCV_DIR%\bin 3. Install Visual Studio 2013. Make sure to get the C++ components. You can use a different edition, just make sure OpenCV supports it, and you set the "vcxx" part of the variables above to match. 4. Download peterbraden/node-opencv fork git clone https://github.com/peterbraden/node-opencv 5. run npm install ```bash $ npm install opencv ``` ## Examples Run the examples from the parent directory. ### Face Detection ```javascript cv.readImage("./examples/files/mona.png", function(err, im){ im.detectObject(cv.FACE_CASCADE, {}, function(err, faces){ for (var i=0;i{ cv.readImage(f, function (err, im) { // Assume all training photo are named as id_xxx.jpg let labelNumber = parseInt(path.basename(f).substring(3)); samples.push([labelNumber, im]); }) }) if ( samples.length > 3 ) { // There are async and sync version of training method: // .train(info, cb) // cb : standard Nan::Callback // info : [[intLabel,matrixImage],...]) // .trainSync(info) fr.trainSync(samples); fr.saveSync('./trained.xml'); }else { console.log('Not enough images uploaded yet', cvImages) } } function predictIt(fr, f){ cv.readImage(f, function (err, im) { let result = fr.predictSync(im); console.log(`recognize result:(${f}) id=${result.id} conf=${100.0-result.confidence}`); }); } //using defaults: .createLBPHFaceRecognizer(radius=1, neighbors=8, grid_x=8, grid_y=8, threshold=80) const fr = new cv.FaceRecognizer(); trainIt(fr); forEachFileInDir('./_bench', (f) => predictIt(fr, f)); ``` ## Test Using [tape](https://github.com/substack/tape). Run with command: `npm test`. ## Code coverage Using [istanbul](http://gotwarlost.github.io/istanbul/) and [lcov](http://ltp.sourceforge.net/coverage/lcov.php). Run with command: `make cover` Build version of `opencv.node` will be generated, and coverage files will be put in `coverage/` directory. These files can be remvoved automatically by running `make clean`. ## MIT License The library is distributed under the MIT License - if for some reason that doesn't work for you please get in touch.