mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
basics of goodFeaturesToTrack
This commit is contained in:
parent
946e1fc344
commit
48ab05f624
4
smoke.sh
4
smoke.sh
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
node-gyp rebuild && echo '-- Compiled OK --
|
||||
|
||||
' && node smoketest.js && echo '-- Smoke Done, running tests --
|
||||
' && node smoketest.js #&& echo '-- Smoke Done, running tests --
|
||||
|
||||
' && npm test
|
||||
#' && npm test
|
||||
|
||||
14
smoketest.js
14
smoketest.js
@ -1,5 +1,5 @@
|
||||
var cv = require('./lib/opencv')
|
||||
|
||||
/*
|
||||
new cv.VideoCapture(0).read(function(mat){
|
||||
|
||||
mat.resize(200,100)
|
||||
@ -15,3 +15,15 @@ new cv.VideoCapture(0).read(function(mat){
|
||||
|
||||
})
|
||||
})
|
||||
*/
|
||||
|
||||
|
||||
cv.readImage("./examples/mona.png", function(err, im){
|
||||
var features = im.goodFeaturesToTrack();
|
||||
for (var i=0;i<features.length; i++){
|
||||
var x = features[i]
|
||||
im.ellipse(x[0] - 5, x[1] -5, 10, 10);
|
||||
}
|
||||
console.log(features)
|
||||
im.save('./out.jpg');
|
||||
});
|
||||
|
||||
@ -56,6 +56,8 @@ Matrix::Init(Handle<Object> target) {
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "findContours", FindContours);
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "drawContour", DrawContour);
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "drawAllContours", DrawAllContours);
|
||||
|
||||
NODE_SET_PROTOTYPE_METHOD(constructor, "goodFeaturesToTrack", GoodFeaturesToTrack);
|
||||
|
||||
NODE_SET_METHOD(constructor, "Eye", Eye);
|
||||
|
||||
@ -555,6 +557,34 @@ Matrix::DrawAllContours(const v8::Arguments& args) {
|
||||
return Undefined();
|
||||
}
|
||||
|
||||
Handle<Value>
|
||||
Matrix::GoodFeaturesToTrack(const v8::Arguments& args) {
|
||||
HandleScope scope;
|
||||
|
||||
Matrix *self = ObjectWrap::Unwrap<Matrix>(args.This());
|
||||
std::vector<cv::Point2f> corners;
|
||||
|
||||
cv::Mat gray;
|
||||
|
||||
cvtColor(self->mat, gray, CV_BGR2GRAY);
|
||||
equalizeHist(gray, gray);
|
||||
|
||||
cv::goodFeaturesToTrack(gray, corners, 500, 0.01, 10);
|
||||
|
||||
v8::Local<v8::Array> arr = v8::Array::New(corners.size());
|
||||
|
||||
|
||||
for (unsigned int i=0; i<corners.size(); i++){
|
||||
v8::Local<v8::Array> pt = v8::Array::New(2);
|
||||
pt->Set(0, Number::New((double) corners[i].x));
|
||||
pt->Set(1, Number::New((double) corners[i].y));
|
||||
arr->Set(i, pt);
|
||||
}
|
||||
|
||||
return scope.Close(arr);
|
||||
|
||||
}
|
||||
|
||||
|
||||
cv::Scalar setColor(Local<Object> objColor) {
|
||||
|
||||
|
||||
@ -84,5 +84,7 @@ class Matrix: public node::ObjectWrap {
|
||||
JSFUNC(DrawContour)
|
||||
JSFUNC(DrawAllContours)
|
||||
|
||||
JSFUNC(GoodFeaturesToTrack)
|
||||
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user