在 node.js 上使用 tracking.js

Use tracking.js on node.js

我正在尝试使用 node.js 对图像进行一些颜色跟踪。我发现 tracking.js 非常适合这份工作。我已经在浏览器中解决了问题。当我试图将事情转移到 node.js 时,我意识到 tracking.js 依赖于 DOM 元素将图像转换为矩阵等

我的用例与此类似(来自 tracking.js 示例):

window.onload = function() {
  var img = document.getElementById('img');
  var demoContainer = document.querySelector('.demo-container');

  var tracker = new tracking.ColorTracker(['magenta', 'cyan', 'yellow']);

  tracker.on('track', function(event) {
    event.data.forEach(function(rect) {
      window.plot(rect.x, rect.y, rect.width, rect.height, rect.color);
    });
  });

  tracking.track('#img', tracker);

  window.plot = function(x, y, w, h, color) {
    console.log('found ',color,' at ',x,y,w,h) // these results would be used in node.js
    var rect = document.createElement('div');
    document.getElementById('bdy').appendChild(rect);
    rect.classList.add('rect');
    rect.style.border = '2px solid ' + color;
    rect.style.width = w + 'px';
    rect.style.height = h + 'px';
    rect.style.left = (img.offsetLeft + x) + 'px';
    rect.style.top = (img.offsetTop + y) + 'px';
  };
};

据我所知,他们提供了一个 gulp 可以在回购协议中运行的测试,但我无法在任何地方找到合适的模块。

是否有一种优雅的替代方法可以在 node.js 上制作 tracking.js 运行?

latest commit has absolved this problem (from issue #47).

作为附加解决方案 - 您可以查看 Webgazer tracker - 这个提供开箱即用的眼动追踪。您还可以 select 使用哪个跟踪库(包括 tracking.js 作为选项之一)。

UPD

我在这个演示中创建了一个 tracking.js wolring 版本 - https://plnkr.co/edit/5sRi4H7nhypRy610Nx4K?p=preview ,这不是一个完全 Node.js window-less 环境,但是接近那个。希望对您有所帮助。