mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
commit
964da8e3b4
@ -13,7 +13,8 @@ cool, I'd love to hear about it!
|
|||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
You'll need OpenCV 2.3.1 or newer installed before installing node-opencv.
|
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 Windows
|
## Specific for Windows
|
||||||
1. Download and install OpenCV (Be sure to use a 2.4 version) @
|
1. Download and install OpenCV (Be sure to use a 2.4 version) @
|
||||||
|
|||||||
10
binding.gyp
10
binding.gyp
@ -39,7 +39,7 @@
|
|||||||
"conditions": [
|
"conditions": [
|
||||||
[ "OS==\"linux\" or OS==\"freebsd\" or OS==\"openbsd\" or OS==\"solaris\" or OS==\"aix\"", {
|
[ "OS==\"linux\" or OS==\"freebsd\" or OS==\"openbsd\" or OS==\"solaris\" or OS==\"aix\"", {
|
||||||
"cflags": [
|
"cflags": [
|
||||||
"<!@(pkg-config --cflags \"opencv >= 2.3.1\" )",
|
"<!@(node utils/find-opencv.js --cflags)",
|
||||||
"-Wall"
|
"-Wall"
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
@ -64,7 +64,7 @@
|
|||||||
"-mmacosx-version-min=10.7",
|
"-mmacosx-version-min=10.7",
|
||||||
"-std=c++11",
|
"-std=c++11",
|
||||||
"-stdlib=libc++",
|
"-stdlib=libc++",
|
||||||
"<!@(pkg-config --cflags opencv)"
|
"<!@(node utils/find-opencv.js --cflags)",
|
||||||
],
|
],
|
||||||
"GCC_ENABLE_CPP_RTTI": "YES",
|
"GCC_ENABLE_CPP_RTTI": "YES",
|
||||||
"GCC_ENABLE_CPP_EXCEPTIONS": "YES"
|
"GCC_ENABLE_CPP_EXCEPTIONS": "YES"
|
||||||
@ -80,7 +80,7 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
"libraries": [
|
"libraries": [
|
||||||
"<!@(node utils/find-opencv.js --libs)"
|
"<!@(node utils/find-opencv.js --libs)",
|
||||||
],
|
],
|
||||||
# For windows
|
# For windows
|
||||||
|
|
||||||
@ -96,7 +96,7 @@
|
|||||||
"conditions": [
|
"conditions": [
|
||||||
[ "OS==\"linux\"", {
|
[ "OS==\"linux\"", {
|
||||||
"cflags": [
|
"cflags": [
|
||||||
"<!@(pkg-config --cflags \"opencv >= 2.3.1\" )",
|
"<!@(node utils/find-opencv.js --cflags)",
|
||||||
"-Wall"
|
"-Wall"
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
@ -121,7 +121,7 @@
|
|||||||
"-mmacosx-version-min=10.7",
|
"-mmacosx-version-min=10.7",
|
||||||
"-std=c++11",
|
"-std=c++11",
|
||||||
"-stdlib=libc++",
|
"-stdlib=libc++",
|
||||||
"<!@(pkg-config --cflags opencv)"
|
"<!@(node utils/find-opencv.js --cflags)",
|
||||||
],
|
],
|
||||||
"GCC_ENABLE_CPP_RTTI": "YES",
|
"GCC_ENABLE_CPP_RTTI": "YES",
|
||||||
"GCC_ENABLE_CPP_EXCEPTIONS": "YES"
|
"GCC_ENABLE_CPP_EXCEPTIONS": "YES"
|
||||||
|
|||||||
@ -1,5 +1,10 @@
|
|||||||
var cv = require('../lib/opencv');
|
var cv = require('../lib/opencv');
|
||||||
|
|
||||||
|
if (cv.ImageSimilarity === undefined) {
|
||||||
|
console.log('TODO: Please port Features2d.cc to OpenCV 3')
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
cv.readImage("./examples/files/car1.jpg", function(err, car1) {
|
cv.readImage("./examples/files/car1.jpg", function(err, car1) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,11 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <nan.h>
|
#include <nan.h>
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4))
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#warning TODO: port me to OpenCV 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4))
|
||||||
|
|
||||||
Nan::Persistent<FunctionTemplate> BackgroundSubtractorWrap::constructor;
|
Nan::Persistent<FunctionTemplate> BackgroundSubtractorWrap::constructor;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4))
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4))
|
||||||
|
|
||||||
#include <opencv2/video/background_segm.hpp>
|
#include <opencv2/video/background_segm.hpp>
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#include <opencv2/calib3d.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of calib3d.hpp functions
|
* Implementation of calib3d.hpp functions
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -2,6 +2,9 @@
|
|||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
#include "Matrix.h"
|
#include "Matrix.h"
|
||||||
|
|
||||||
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#include <opencv2/video/tracking.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define CHANNEL_HUE 0
|
#define CHANNEL_HUE 0
|
||||||
#define CHANNEL_SATURATION 1
|
#define CHANNEL_SATURATION 1
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#include <opencv2/objdetect.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
class CascadeClassifierWrap: public Nan::ObjectWrap {
|
class CascadeClassifierWrap: public Nan::ObjectWrap {
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
#include "FaceRecognizer.h"
|
#include "FaceRecognizer.h"
|
||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4) && (CV_SUBMINOR_VERSION>=4))
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#warning TODO: port me to OpenCV 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4) && (CV_SUBMINOR_VERSION>=4))
|
||||||
|
|
||||||
#include "Matrix.h"
|
#include "Matrix.h"
|
||||||
#include <nan.h>
|
#include <nan.h>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4))
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4) && (CV_SUBMINOR_VERSION>=4))
|
||||||
|
|
||||||
#include "opencv2/contrib/contrib.hpp"
|
#include "opencv2/contrib/contrib.hpp"
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
|
#include "OpenCV.h"
|
||||||
|
|
||||||
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4))
|
||||||
#include "Features2d.h"
|
#include "Features2d.h"
|
||||||
#include "Matrix.h"
|
#include "Matrix.h"
|
||||||
#include <nan.h>
|
#include <nan.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4))
|
|
||||||
|
|
||||||
void Features::Init(Local<Object> target) {
|
void Features::Init(Local<Object> target) {
|
||||||
Nan::HandleScope scope;
|
Nan::HandleScope scope;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4))
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4))
|
||||||
|
|
||||||
#include <opencv2/core/core.hpp>
|
#include <opencv2/core/core.hpp>
|
||||||
#include <opencv2/features2d/features2d.hpp>
|
#include <opencv2/features2d/features2d.hpp>
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
#include "LDAWrap.h"
|
|
||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4) && (CV_SUBMINOR_VERSION>=4))
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#warning TODO: port me to OpenCV 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4) && (CV_SUBMINOR_VERSION>=4))
|
||||||
|
#include "LDAWrap.h"
|
||||||
#include "Matrix.h"
|
#include "Matrix.h"
|
||||||
#include <nan.h>
|
#include <nan.h>
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
#if ((CV_MAJOR_VERSION >= 2) && (CV_MINOR_VERSION >=4))
|
#if ((CV_MAJOR_VERSION == 2) && (CV_MINOR_VERSION >=4))
|
||||||
|
|
||||||
#include "opencv2/contrib/contrib.hpp"
|
#include "opencv2/contrib/contrib.hpp"
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,11 @@
|
|||||||
#include <node_buffer.h>
|
#include <node_buffer.h>
|
||||||
#include <opencv/cv.h>
|
#include <opencv/cv.h>
|
||||||
#include <opencv/highgui.h>
|
#include <opencv/highgui.h>
|
||||||
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#include <opencv2/highgui.hpp>
|
||||||
|
#include <opencv2/imgproc.hpp>
|
||||||
|
#include <opencv2/videoio.hpp>
|
||||||
|
#endif
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <nan.h>
|
#include <nan.h>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,11 @@
|
|||||||
|
|
||||||
#include "Stereo.h"
|
#include "Stereo.h"
|
||||||
|
|
||||||
|
#if CV_MAJOR_VERSION >= 3
|
||||||
|
#warning TODO: port me to OpenCV 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CV_MAJOR_VERSION < 3
|
||||||
#include "Matrix.h"
|
#include "Matrix.h"
|
||||||
#include <opencv2/legacy/legacy.hpp>
|
#include <opencv2/legacy/legacy.hpp>
|
||||||
|
|
||||||
@ -312,3 +319,5 @@ NAN_METHOD(StereoGC::Compute) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|||||||
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include "OpenCV.h"
|
#include "OpenCV.h"
|
||||||
|
|
||||||
|
#if CV_MAJOR_VERSION < 3
|
||||||
|
|
||||||
class StereoBM: public Nan::ObjectWrap {
|
class StereoBM: public Nan::ObjectWrap {
|
||||||
public:
|
public:
|
||||||
cv::StereoBM stereo;
|
cv::StereoBM stereo;
|
||||||
@ -51,3 +53,4 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
#endif // __NODE_STEREO_H
|
||||||
|
|||||||
@ -30,15 +30,18 @@ extern "C" void init(Local<Object> target) {
|
|||||||
Constants::Init(target);
|
Constants::Init(target);
|
||||||
Calib3D::Init(target);
|
Calib3D::Init(target);
|
||||||
ImgProc::Init(target);
|
ImgProc::Init(target);
|
||||||
|
#if CV_MAJOR_VERSION < 3
|
||||||
StereoBM::Init(target);
|
StereoBM::Init(target);
|
||||||
StereoSGBM::Init(target);
|
StereoSGBM::Init(target);
|
||||||
StereoGC::Init(target);
|
StereoGC::Init(target);
|
||||||
|
#if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION >=4
|
||||||
#if CV_MAJOR_VERSION >= 2 && CV_MINOR_VERSION >=4
|
|
||||||
BackgroundSubtractorWrap::Init(target);
|
BackgroundSubtractorWrap::Init(target);
|
||||||
Features::Init(target);
|
Features::Init(target);
|
||||||
FaceRecognizerWrap::Init(target);
|
|
||||||
LDAWrap::Init(target);
|
LDAWrap::Init(target);
|
||||||
|
#if CV_SUBMINOR_VERSION>=4
|
||||||
|
FaceRecognizerWrap::Init(target);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -315,6 +315,12 @@ test("fonts", function(t) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('LDA Wrap', function(assert) {
|
test('LDA Wrap', function(assert) {
|
||||||
|
if (cv.LDA === undefined) {
|
||||||
|
console.log('TODO: Please port LDAWrap.cc to OpenCV 3')
|
||||||
|
assert.end();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// subspaceProject
|
// subspaceProject
|
||||||
var mat = cv.LDA.subspaceProject(new cv.Matrix(1, 2, cv.Constants.CV_64F), new cv.Matrix(), new cv.Matrix(2, 1, cv.Constants.CV_8UC1));
|
var mat = cv.LDA.subspaceProject(new cv.Matrix(1, 2, cv.Constants.CV_64F), new cv.Matrix(), new cv.Matrix(2, 1, cv.Constants.CV_8UC1));
|
||||||
assert.deepEqual(mat.size(), [2,2], 'subspaceProject');
|
assert.deepEqual(mat.size(), [2,2], 'subspaceProject');
|
||||||
|
|||||||
@ -1,16 +1,24 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
var exec = require("child_process").exec;
|
var exec = require("child_process").exec;
|
||||||
var fs = require("fs");
|
var fs = require("fs");
|
||||||
var flag = process.argv[2];
|
var flag = process.argv[2] || "--exists";
|
||||||
|
|
||||||
|
// Normally |pkg-config opencv ...| could report either OpenCV 2.x or OpenCV 3.y
|
||||||
|
// depending on what is installed. To enable both 2.x and 3.y to co-exist on
|
||||||
|
// the same machine, the opencv.pc for 3.y can be installed as opencv3.pc and
|
||||||
|
// then selected by |export PKG_CONFIG_OPENCV3=1| before building node-opencv.
|
||||||
|
var opencv = process.env.PKG_CONFIG_OPENCV3 === "1" ? "opencv3" : '"opencv >= 2.3.1"';
|
||||||
|
|
||||||
function main(){
|
function main(){
|
||||||
//Try using pkg-config, but if it fails and it is on Windows, try the fallback
|
//Try using pkg-config, but if it fails and it is on Windows, try the fallback
|
||||||
exec("pkg-config opencv " + flag, function(error, stdout, stderr){
|
exec("pkg-config " + opencv + " " + flag, function(error, stdout, stderr){
|
||||||
if(error){
|
if(error){
|
||||||
if(process.platform === "win32"){
|
if(process.platform === "win32"){
|
||||||
fallback();
|
fallback();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
throw new Error("ERROR: pkg-config couldn't find OpenCV");
|
throw new Error("ERROR: failed to run: pkg-config", opencv, flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user