Open Jaylton opened 7 years ago
Edit: After thinking about it, i guess its better to do it manually by using
tracking.ViolaJones.detect(pixels, width, height, self.getInitialScale(), self.getScaleFactor(), self.getStepSize(), self.getEdgesDensity(), tracking.ViolaJones.classifiers['face'])
directly.
Hi, I need this too, reading the code, its not possible unless you do them separatelly. wich i guess should affect performance.
An idea for solution to not affect too much API would be in tracking.js to keep the type when you originally create the tracker. Them in rect add the type property.
tracking.ObjectTracker = function(opt_classifiers) {
tracking.ObjectTracker.base(this, 'constructor');
if (opt_classifiers) {
if (!Array.isArray(opt_classifiers)) {
opt_classifiers = [opt_classifiers];
}
var classifiersMap = {};
if (Array.isArray(opt_classifiers)) {
opt_classifiers.forEach(function(classifier, i) {
if (typeof classifier === 'string') {
classifiersMap[classifier] = tracking.ViolaJones.classifiers[classifier];
}
if (!classifiersMap[classifier]) {
throw new Error('Object classifier not valid, try `new tracking.ObjectTracker("face")`.');
}
});
}
}
this.setClassifiers(classifiersMap);
};
tracking.ObjectTracker.prototype.track = function(pixels, width, height) {
var self = this;
var classifiers = this.getClassifiers();
if (!classifiers) {
throw new Error('Object classifier not specified, try `new tracking.ObjectTracker("face")`.');
}
var results = [];
Object.keys(classifiers).forEach(function(classifier) {
var rect = tracking.ViolaJones.detect(pixels, width, height, self.getInitialScale(), self.getScaleFactor(), self.getStepSize(), self.getEdgesDensity(), classifiers[classifier]);
rect.type = classifier;
results = results.concat(rect);
});
this.emit('track', {
data: results
});
};
how to know which classifier was detected? I need these classifiers which violates jones / tracking this by detecting the image. how can I do to find out
Queria saber como descobrir qual dos classificadores esta sendo detectado, como posso fazer isso? `var img = document.getElementById('srcImage');
var tracker = new tracking.ObjectTracker(['face']); tracker.setStepSize(1.7);
tracking.track('#srcImage', tracker, {onFound:function(){ alert('re'); }});
tracker.on('track', function(event) { console.log(event) event.data.forEach(function(rect) { window.plot(rect.x, rect.y, rect.width, rect.height); alert(event.classifier); }); });
window.plot = function(x, y, w, h) { var rect = document.createElement('div'); document.querySelector('.image').appendChild(rect); rect.classList.add('rect'); rect.style.width = w + 'px'; rect.style.height = h + 'px'; rect.style.left = (img.offsetLeft + x) + 'px'; rect.style.top = (img.offsetTop + y) + 'px'; };
};`