add adjustROI

This commit is contained in:
Peter Braden 2013-04-06 18:34:08 -07:00
parent 95b2585838
commit a347ab682e
4 changed files with 67 additions and 3 deletions

View File

@ -0,0 +1,29 @@
var cv = require('../lib/opencv')
var vid = new cv.VideoCapture(0)
var snap = function(){
vid.read(function(im){
im.detectObject(cv.FACE_CASCADE, {}, function(err, faces){
if (!faces){
console.log("No Faces")
return;
}
var face = faces[0]
, ims = im.size()
im.adjustROI(
-face.y
, (face.y + face.height) - ims[0]
, -face.x
, (face.x + face.width) - ims[1])
console.log("!!", im.locateROI());
var im2 = im.clone()
})
});
}
snap()

View File

@ -70,7 +70,8 @@ NamedWindow::Destroy(const v8::Arguments& args){
Handle<Value>
NamedWindow::BlockingWaitKey(const v8::Arguments& args){
SETUP_FUNCTION(NamedWindow)
HandleScope scope;
//SETUP_FUNCTION(NamedWindow)
int time = 0;
if (args.Length() > 0){
time = args[1]->IntegerValue();

View File

@ -68,6 +68,8 @@ Matrix::Init(Handle<Object> target) {
NODE_SET_PROTOTYPE_METHOD(constructor, "houghLinesP", HoughLinesP);
NODE_SET_PROTOTYPE_METHOD(constructor, "inRange", inRange);
NODE_SET_PROTOTYPE_METHOD(constructor, "adjustROI", AdjustROI);
NODE_SET_PROTOTYPE_METHOD(constructor, "locateROI", LocateROI);
NODE_SET_METHOD(constructor, "Eye", Eye);
@ -901,3 +903,35 @@ Matrix::inRange(const v8::Arguments& args) {
return scope.Close(v8::Null());
}
Handle<Value>
Matrix::AdjustROI(const v8::Arguments& args) {
SETUP_FUNCTION(Matrix)
int dtop = args[0]->Uint32Value();
int dbottom = args[1]->Uint32Value();
int dleft = args[2]->Uint32Value();
int dright = args[3]->Uint32Value();
self->mat.adjustROI(dtop, dbottom, dleft, dright);
return scope.Close(v8::Null());
}
Handle<Value>
Matrix::LocateROI(const v8::Arguments& args) {
SETUP_FUNCTION(Matrix)
cv::Size wholeSize;
cv::Point ofs;
self->mat.locateROI(wholeSize, ofs);
v8::Local<v8::Array> arr = v8::Array::New(4);
arr->Set(0, Number::New(wholeSize.width));
arr->Set(1, Number::New(wholeSize.height));
arr->Set(2, Number::New(ofs.x));
arr->Set(3, Number::New(ofs.y));
return scope.Close(arr);
}

View File

@ -65,6 +65,8 @@ class Matrix: public node::ObjectWrap {
JSFUNC(inRange)
JSFUNC(LocateROI)
JSFUNC(AdjustROI)
/*
static Handle<Value> Val(const Arguments& args);
static Handle<Value> RowRange(const Arguments& args);
@ -86,8 +88,6 @@ class Matrix: public node::ObjectWrap {
// create, increment, release
static Handle<Value> PushBack(const Arguments& args);
static Handle<Value> PopBack(const Arguments& args);
static Handle<Value> LocateROI(const Arguments& args);
static Handle<Value> AdjustROI(const Arguments& args);
static Handle<Value> Total(const Arguments& args);
static Handle<Value> IsContinous(const Arguments& args);
static Handle<Value> Type(const Arguments& args);