mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
62 lines
1.5 KiB
Plaintext
Executable File
62 lines
1.5 KiB
Plaintext
Executable File
Examples
|
|
Face Detection
|
|
|
|
cv.readImage("./examples/test.jpg", function(err, im){
|
|
im.detectObject("./examples/haarcascade_frontalface_alt.xml", {}, function(err, faces){
|
|
for (var i=0;i<faces.length; i++){
|
|
var x = faces[i]
|
|
im.ellipse(x.x + x.width/2, x.y + x.height/2, x.width/2, x.height/2);
|
|
}
|
|
im.save('./out.jpg');
|
|
|
|
});
|
|
})
|
|
|
|
API Documentation
|
|
Matrix
|
|
|
|
The matrix is the most useful base datastructure in OpenCV. Things like images are just matrices of pixels.
|
|
Creation
|
|
|
|
new Matrix(width, height)
|
|
|
|
Or you can use opencv to read in image files. Supported formats are in the OpenCV docs, but jpgs etc are supported.
|
|
|
|
cv.readImage(filename, function(mat){
|
|
...
|
|
})
|
|
|
|
cv.readImage(buffer, function(mat){
|
|
...
|
|
})
|
|
|
|
If you need to pipe data into an image, you can use an imagestream:
|
|
|
|
var s = new cv.ImageStream()
|
|
|
|
s.on('load', function(matrix){
|
|
...
|
|
})
|
|
|
|
fs.createReadStream('./examples/test.jpg').pipe(s);
|
|
|
|
Accessors
|
|
|
|
var mat = new cv.Matrix.Eye(4,4); // Create identity matrix
|
|
|
|
mat.get(0,0) // 1
|
|
|
|
mat.row(0) // [1,0,0,0]
|
|
mat.col(4) // [0,0,0,1]
|
|
|
|
Image Processing
|
|
Object Detection
|
|
|
|
There is a shortcut method for Viola-Jones Haar Cascade object detection. This can be used for face detection etc.
|
|
|
|
mat.detectObject(haar_cascade_xml, opts, function(err, matches){})
|
|
|
|
WIP
|
|
|
|
This is a WIP. I've never written C++ before so the code may be interesting - if I'm doing stuff wrong please feel free to correct me.
|