mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
WIP on image from buffer
This commit is contained in:
parent
a62658c28b
commit
b038343ad4
@ -4,7 +4,7 @@ var cv = require('./lib/opencv')
|
||||
console.log(cv.version)
|
||||
|
||||
|
||||
var im = new cv.Image("./examples/mona.jpg")
|
||||
var im = new cv.Image("./examples/test.jpg")
|
||||
, face_cascade = new cv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml")
|
||||
|
||||
var faces = face_cascade.detectMultiScale(im, function(err, faces){
|
||||
@ -15,4 +15,4 @@ var faces = face_cascade.detectMultiScale(im, function(err, faces){
|
||||
im.save('./out.jpg');
|
||||
|
||||
|
||||
}, 1.1, 2, [30, 30]);
|
||||
});
|
||||
19
src/Image.cc
19
src/Image.cc
@ -22,7 +22,6 @@ Image::Init(Handle<Object> target) {
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "save", Save);
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "ellipse", Ellipse);
|
||||
|
||||
|
||||
/*proto->SetAccessor(String::NewSymbol("source"), GetSource, SetSource);
|
||||
proto->SetAccessor(String::NewSymbol("complete"), GetComplete);
|
||||
|
||||
@ -48,7 +47,15 @@ Image::New(const Arguments &args) {
|
||||
height = args[1]->Uint32Value();
|
||||
img = new Image(width, height);
|
||||
} else {
|
||||
img = new Image(*args[0]);
|
||||
if (args[0]->IsString()) {
|
||||
img = new Image(*args[0]);
|
||||
} else {
|
||||
if (Buffer::HasInstance(args[0])){
|
||||
uint8_t *buf = (uint8_t *) Buffer::Data(args[0]->ToObject());
|
||||
unsigned len = Buffer::Length(args[0]->ToObject());
|
||||
img = new Image(buf, len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img->Wrap(args.This());
|
||||
@ -56,11 +63,15 @@ Image::New(const Arguments &args) {
|
||||
};
|
||||
|
||||
|
||||
|
||||
Image::Image(int width, int height): ObjectWrap() {
|
||||
};
|
||||
|
||||
Image::Image(cv::Mat m): ObjectWrap() {
|
||||
mat = m;
|
||||
|
||||
Image::Image(uint8_t* buf, unsigned len): ObjectWrap() {
|
||||
cv::Mat *mbuf = new cv::Mat(len, 1, CV_8UC1);
|
||||
|
||||
mat = cv::imdecode(*mbuf, -1);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -11,9 +11,8 @@ class Image: public node::ObjectWrap {
|
||||
|
||||
Image(int width, int height);
|
||||
Image(v8::Value* src);
|
||||
Image(cv::Mat m);
|
||||
|
||||
|
||||
Image(uint8_t* buf, unsigned len);
|
||||
|
||||
static Handle<Value> GetWidth(Local<String> prop, const AccessorInfo &info);
|
||||
static Handle<Value> GetHeight(Local<String> prop, const AccessorInfo &info);
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
#include <node.h>
|
||||
#include <node_object_wrap.h>
|
||||
#include <node_version.h>
|
||||
#include <node_buffer.h>
|
||||
#include <cv.h>
|
||||
#include <highgui.h>
|
||||
#include <string.h>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user