sanyuered / WeChat-MiniProgram-WebAR

A WeChat MiniProgram Image AR using computer vision. No OpenCV, No Deep Learning. Only JavaScript Implementation.
BSD 3-Clause "New" or "Revised" License
269 stars 61 forks source link

可以增加一个识别mouth的demo吗? #1

Closed wuhongxing closed 5 years ago

wuhongxing commented 5 years ago

我引入了tracking.js中的mouth.js并更改了相应的代码仍然无法使用。

sanyuered commented 5 years ago

你好! mouth.js是给tracking.ObjectTracker使用的,在tracking.LandmarksTracker中没有作用。 mouth.js使用方法如下: 1、修改mouth.js,变成模块化 var mouth = new Float64Array(); ... module.exports = mouth; 2、模块化的方式引用mouth.js const mouth = require('mouth.js') 3、将引用的mouth对象设置到tracking.ViolaJones.classifiers.mouth上,并且换成tracking.ObjectTracker即可。 tracking.ViolaJones.classifiers.mouth = mouth; var tracker = new tracking.ObjectTracker(['mouth']); tracker.setStepSize(1.7); tracker.track(res.data, frameWidth, frameHeight);

wuhongxing commented 5 years ago

你好,我已按照mouth.js使用方法中的1和2修改。 然后并增加drawByMouth()的代码,运行后,无法监测到mouth并会引起闪退。 使用方法几乎是和ColorTracker一样。

drawByMouth() {
    var _that = this;
    const ctx = wx.createCanvasContext(canvasId);
    tracking.ViolaJones.classifiers.mouth = mouth;
    _that.tracker = new tracking.ObjectTracker(['mouth']);
    _that.tracker.setStepSize(1.7);
    _that.tracker.on('track', function (event) {
      if (event.data.length != 0) {
        console.log(event);
      }
    });
    // start
    _that.startTacking();
  }
sanyuered commented 5 years ago

你好! 1、代码增加了tracking.ObjectTracker(['mouth'])的示例,在photo.js和camera.js的方法drawByObjectTracker中。 2、如果使用实时获取摄像头画面的API,则需要iOS微信7.0.4版,Android微信7.0.5版。