Correct basic case with feedback from jraadt

This commit is contained in:
Peter Braden 2013-03-15 13:55:01 -07:00
parent 053a693c9a
commit b8ce5d0def
2 changed files with 13 additions and 8 deletions

View File

@ -11,7 +11,7 @@ for (var i = 1; i< 41; i++){
var facerec = new cv.FaceRecognizer();
facerec.train(trainingData);
console.log(facerec.predictSync('/Users/peterbraden/Downloads/orl_faces/s1/10.pgm'));
console.log(facerec.predictSync('/Users/peterbraden/Downloads/orl_faces/s6/10.pgm'));
/*

View File

@ -49,8 +49,8 @@ FaceRecognizerWrap::New(const Arguments &args) {
if (args.This()->InternalFieldCount() == 0)
JSTHROW_TYPE("Cannot Instantiate without new")
// By default initialize eigenface
cv::Ptr<cv::FaceRecognizer> f = cv::createEigenFaceRecognizer();
// By default initialize LBPH
cv::Ptr<cv::FaceRecognizer> f = cv::createLBPHFaceRecognizer(1, 8, 8, 8, 80.0);
FaceRecognizerWrap *pt = new FaceRecognizerWrap(f);
pt->Wrap(args.This());
@ -90,6 +90,8 @@ FaceRecognizerWrap::Train(const Arguments& args){
int label = valarr->Get(0)->Uint32Value();
cv::Mat im = fromMatrixOrFilename(valarr->Get(1));
im = im.clone();
cv::cvtColor(im, im, CV_RGB2GRAY);
labels.push_back(label);
images.push_back(im);
}
@ -111,8 +113,11 @@ FaceRecognizerWrap::PredictSync(const Arguments& args){
int predictedLabel = -1;
double confidence = 0.0;
self->rec->predict(im, predictedLabel, confidence);
// std::cout << confidence;
return scope.Close(Number::New(predictedLabel));
v8::Local<v8::Object> res = v8::Object::New();
res->Set(v8::String::New("id"), v8::Number::New(predictedLabel));
res->Set(v8::String::New("confidence"), v8::Number::New(confidence));
return scope.Close(res);
}
#endif // End version > 2.4