From c24b662b378037e80b02ff18870476d245b21ba6 Mon Sep 17 00:00:00 2001 From: Peter Braden Date: Thu, 19 Jan 2012 01:16:34 -0800 Subject: [PATCH] don't think my video will work because I built opencv without ffmpeg :( --- smoketest.js | 2 +- src/Image.cc | 10 ---------- src/Image.h | 1 - src/VideoCaptureWrap.cc | 16 ++++++++++------ 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/smoketest.js b/smoketest.js index 2ede820..8e117a2 100755 --- a/smoketest.js +++ b/smoketest.js @@ -17,4 +17,4 @@ im.save('./out.jpg'); var cam = new cv.VideoCapture(0); -console.log(cam.getFrame()); \ No newline at end of file +console.log(cam.getFrame().save("out.jpg")); \ No newline at end of file diff --git a/src/Image.cc b/src/Image.cc index 4ec6d11..631017f 100644 --- a/src/Image.cc +++ b/src/Image.cc @@ -116,13 +116,3 @@ Image::Ellipse(const v8::Arguments& args){ cv::ellipse(self->mat, cv::Point(x, y), cv::Size(width, height), 0, 0, 360, cv::Scalar( 255, 0, 255 ), 4, 8, 0); return scope.Close(v8::Null()); } - - -v8::Handle -Image::Wrap() { - v8::HandleScope scope; - v8::Handle cons = constructor->GetFunction(); - v8::Handle external = v8::External::New(value); - v8::Handle result = cons->NewInstance(1, &external); - return scope.Close(result); -} diff --git a/src/Image.h b/src/Image.h index 1252416..080f109 100644 --- a/src/Image.h +++ b/src/Image.h @@ -21,7 +21,6 @@ class Image: public node::ObjectWrap { static Handle Save(const v8::Arguments&); static Handle Ellipse(const v8::Arguments&); - private: ~Image(); }; diff --git a/src/VideoCaptureWrap.cc b/src/VideoCaptureWrap.cc index d44983e..ac0bfc3 100644 --- a/src/VideoCaptureWrap.cc +++ b/src/VideoCaptureWrap.cc @@ -43,9 +43,9 @@ VideoCaptureWrap::VideoCaptureWrap(int device){ cv::VideoCapture cap(device); - if(!cap.isOpened()) + if(!cap.isOpened()){ ThrowException(Exception::Error(String::New("Camera could not be opened"))); - + } } @@ -56,11 +56,15 @@ VideoCaptureWrap::GetFrame(const Arguments &args) { VideoCaptureWrap *v = ObjectWrap::Unwrap(args.This()); cv::Mat frame; - v->cap >> frame; + v->cap.retrieve(frame); - Handle im = Image::New(); - - return scope.Close(im); + + + Local im_h = Image::constructor->GetFunction()->NewInstance(); + Image *im = ObjectWrap::Unwrap(im_h); + im->mat = frame; + printf("* %i * %i * %i : open %i", im->mat.empty(), frame.empty(), v->cap.get(CV_CAP_PROP_FPS), v->cap.isOpened()); + return scope.Close(im_h); } \ No newline at end of file