Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/btsimonh/temp-node-opencv
https://github.com/btsimonh/temp-node-opencv
Last synced: 16 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/btsimonh/temp-node-opencv
- Owner: btsimonh
- License: mit
- Created: 2017-10-21T18:13:41.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-11-08T20:31:43.000Z (about 7 years ago)
- Last Synced: 2024-11-11T13:11:35.459Z (about 2 months ago)
- Language: C++
- Size: 9.58 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: MIT-LICENSE.txt
Awesome Lists containing this project
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
```## 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\vc12Make sure the "x64" part matches the version of NodeJS you are using.
Also add the following to your system PATH
;%OPENCV_DIR%\bin3. 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-opencv5. 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.