hacking around vows bug

This commit is contained in:
Peter Braden 2012-01-26 13:24:48 -08:00
parent b0b036ff34
commit bbd5c06b31
5 changed files with 48 additions and 30 deletions

11
index.html Normal file
View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/documentup/latest.min.js"></script>
<script type="text/javascript">
DocumentUp.document("username/repository");
</script>
</head>
<body></body>
</html>

View File

@ -1,12 +1,12 @@
var EventEmitter = require('events').EventEmitter var Stream = require('stream').Stream
, Buffers = require('buffers') , Buffers = require('buffers')
, util = require('util');
var bindings = require('./bindings') var bindings = require('./bindings')
var cv = module.exports = {}; var cv = module.exports = {};
cv.__proto__ = bindings; cv.__proto__ = bindings;
console.log(cv)
/* /*
# Matrix # # Matrix #
@ -18,33 +18,38 @@ The matrix is one of opencv's most core datatypes.
var matrix = cv.Matrix.prototype; var matrix = cv.Matrix.prototype;
matrix.faceDetect = function(classifier, opts, cb){ matrix.faceDetect = function(classifier, opts, cb){
var face_cascade = new opencv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml"); var face_cascade = new cv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml");
face_cascade.detectMultiScale(this, cb); face_cascade.detectMultiScale(this, cb);
} }
/* matrix.inspect = function(){
var size = this.size() ? (this.size()[0] + 'x' + this.size()[1]) : '';
# Image # return "[Matrix " + size + " ]";
*/
}
cv.ImageStream = function(){ cv.ImageStream = function(){
this.data = Buffers([]) this.data = Buffers([])
this.writable = true
} }
util.inherits(cv.ImageStream, Stream);
var imagestream = cv.ImageStream.prototype; var imagestream = cv.ImageStream.prototype;
imagestream.__proto__ = EventEmitter.prototype;
imagestream.on('data', function(buf){ imagestream.write = function(buf){
this.data.push(buf) this.data.push(buf)
console.log("!!!<>"); return true;
}) }
imagestream.end = function(b){
if (b)
imagestream.write.call(this,b);
imagestream.on('end', function(){
var buf = this.data.toBuffer(); var buf = this.data.toBuffer();
//var im = opencv.readImage(buf);
console.log(this.data.length, buf.length); var im = cv.readImage(buf);
//this.emit('onload', im); this.emit('load', im);
}) }

View File

@ -1,6 +1,6 @@
var cv = require('./lib/opencv') var cv = require('./lib/opencv')
, assert = require('assert') , assert = require('assert')
, fs =require('fs')
console.log(cv.version) //console.log(cv.version)
//console.log(cv.readImage("./examples/t2.jpg").toBuffer());

View File

@ -33,7 +33,7 @@ OpenCV::ReadImage(const Arguments &args) {
width = args[0]->Uint32Value(); width = args[0]->Uint32Value();
height = args[1]->Uint32Value(); height = args[1]->Uint32Value();
mat = *(new cv::Mat(width, height, CV_8UC1)); mat = *(new cv::Mat(width, height, CV_64FC1));
} else if (args[0]->IsString()) { } else if (args[0]->IsString()) {
@ -44,7 +44,7 @@ OpenCV::ReadImage(const Arguments &args) {
uint8_t *buf = (uint8_t *) Buffer::Data(args[0]->ToObject()); uint8_t *buf = (uint8_t *) Buffer::Data(args[0]->ToObject());
unsigned len = Buffer::Length(args[0]->ToObject()); unsigned len = Buffer::Length(args[0]->ToObject());
cv::Mat *mbuf = new cv::Mat(len, 1, CV_8UC1, buf); cv::Mat *mbuf = new cv::Mat(len, 1, CV_64FC1, buf);
mat = cv::imdecode(*mbuf, -1); mat = cv::imdecode(*mbuf, -1);
if (mat.empty()){ if (mat.empty()){

View File

@ -172,8 +172,7 @@ vows.describe('Smoke Tests OpenCV').addBatch({
var cv = require('../lib/opencv') var cv = require('../lib/opencv')
, im = cv.readImage("./examples/mona.jpg") , im = cv.readImage("./examples/mona.jpg")
, cascade = new cv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml"); , cascade = new cv.CascadeClassifier("./examples/haarcascade_frontalface_alt.xml");
cascade.detectMultiScale(im, this.callback)//, 1.1, 2, [30, 30]);
cascade.detectMultiScale(im, this.callback, 1.1, 2, [30, 30]);
} }
, "finds face": function(err, faces){ , "finds face": function(err, faces){
@ -192,16 +191,19 @@ vows.describe('Smoke Tests OpenCV').addBatch({
, "pipe" : { , "pipe" : {
topic : function(cv){ topic : function(cv){
console.log("!!!") var s = new cv.ImageStream()
var s = new cv.ImageStream(); , self = this
console.log("***"); s.on('load', function(im){
s.on('load', this.callback) assert.ok(im)
fs.open('./examples/mona.jpg').pipe(s); assert.equal(im.empty(), false);
self.callback()
})
fs.createReadStream('./examples/mona.jpg').pipe(s);
} }
, "loaded" : function(im){ , "loaded" : function(im){
assert.ok(im); //assert.ok(im)
assert.equal(im.empty(), false); //assert.equal(im.empty(), false);
} }
} }