Merge branch 'master' of github.com:peterbraden/node-opencv

This commit is contained in:
Peter Braden 2013-02-05 14:21:35 -08:00
commit 642f111f9d
4 changed files with 45 additions and 1 deletions

12
examples/color_filter.js Normal file
View File

@ -0,0 +1,12 @@
var cv = require('../lib/opencv');
// (B)lue, (G)reen, (R)ed
var lower_threshold = [46, 57, 83];
var upper_threshold = [80, 96, 115];
cv.readImage('./coin1.jpg', function(err, im) {
im.inRange(lower_threshold, upper_threshold);
im.save('./coin_detected.jpg');
});

View File

@ -1,5 +1,5 @@
var Stream = require('stream').Stream
, Buffers = require('buffer')
, Buffers = require('buffers')
, util = require('util');
var bindings = require('./bindings')

View File

@ -62,6 +62,8 @@ Matrix::Init(Handle<Object> target) {
NODE_SET_PROTOTYPE_METHOD(constructor, "goodFeaturesToTrack", GoodFeaturesToTrack);
NODE_SET_PROTOTYPE_METHOD(constructor, "houghLinesP", HoughLinesP);
NODE_SET_PROTOTYPE_METHOD(constructor, "inRange", inRange);
NODE_SET_METHOD(constructor, "Eye", Eye);
@ -795,3 +797,31 @@ Matrix::Resize(const v8::Arguments& args){
return scope.Close(Undefined());
}
Handle<Value>
Matrix::inRange(const v8::Arguments& args) {
HandleScope scope;
Matrix *self = ObjectWrap::Unwrap<Matrix>(args.This());
/*if(self->mat.channels() != 3)
return v8::ThrowException(String::New("Image is no 3-channel"));*/
if(args[0]->IsArray() && args[1]->IsArray()) {
Local<Object> args_lowerb = args[0]->ToObject();
Local<Object> args_upperb = args[1]->ToObject();
cv::Scalar lowerb(0, 0, 0);
cv::Scalar upperb(0, 0, 0);
lowerb = setColor(args_lowerb);
upperb = setColor(args_upperb);
cv::Mat mask;
cv::inRange(self->mat, lowerb, upperb, mask);
mask.copyTo(self->mat);
}
return scope.Close(v8::Null());
}

View File

@ -58,6 +58,8 @@ class Matrix: public node::ObjectWrap {
JSFUNC(GoodFeaturesToTrack)
JSFUNC(HoughLinesP)
JSFUNC(inRange)
/*
static Handle<Value> Val(const Arguments& args);
static Handle<Value> RowRange(const Arguments& args);