我在试着给绿色添加一个标识。所有默认颜色都可以正常工作,但我无法使用相机为颜色添加新的颜色。
有关更多信息,请访问:ColorTracker
window.onload = function() {
var video = document.getElementById('video');
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var tracker = new tracking.ColorTracker();
tracking.ColorTracker.registerColor('green', function (r, g, b) {
if (r < 50 && g > 200 && b < 50) {
return true;
}
return false;
});
tracking.track('#video', tracker, { camera: true });
tracker.on('track', function(event) {
context.clearRect(0, 0, canvas.width, canvas.height);
event.data.forEach(function(rect) {
if (rect.color === 'custom') {
rect.color = tracker.customColor;
}
context.strokeStyle = rect.color;
context.strokeRect(rect.x, rect.y, rect.width, rect.height);
context.font = '11px Helvetica';
context.fillStyle = "#fff";
context.fillText('x: ' + rect.x + 'px', rect.x + rect.width + 5, rect.y + 11);
context.fillText('y: ' + rect.y + 'px', rect.x + rect.width + 5, rect.y + 22);
});
});
initGUIControllers(tracker);
};发布于 2017-12-09 02:22:46
你做得对,只是颜色跟踪非常挑剔。它将选择与RGB颜色中的G最接近的颜色。正因为如此,它确实能拾取一些黑色和其他颜色。我建议你得到你想要跟踪的绿色的RGB颜色,然后去掉它。我将我在我的项目中工作过的几个项目包括在内(这并不意味着这些将适用于您的绿色环境)
tracking.ColorTracker.registerColor('darkgreen', function (r, g, b) {
if (r < 120 && r > 80 && g < 150 && b < 70) {
return true;
}
return false;
});
tracking.ColorTracker.registerColor('lightgreen', function (r, g, b) {
if (r < 30 && g < 100 && b < 30) {
return true;
}
return false;
});
tracking.ColorTracker.registerColor('green', function (r, g, b) {
if (r < 30 && g < 50 && b < 30) {
return true;
}
return false;
});https://stackoverflow.com/questions/46650919
复制相似问题