Как рисовать фигуры людей на воспроизводимом видео HTML5 с использованием JavaScript на основе обнаружений (x,y,w,h)

У меня есть видео, которое воспроизводится в течение 2,44 мин. У меня также есть массив данных JSON для каждого кадра в видео, который содержит данные обнаружения людей в кадрах: частота кадров 2 кадра в секунду.

Когда я беру один кадр с его единственным обнаружением, ящики точно совпадают с рамкой

но когда я играю видео с событием "ontimeupdate", я получаю несоответствие полей. мой код:

this.video.nativeElement.ontimeupdate = () => {

  let sec = parseInt(this.video.nativeElement.currentTime);
  this.detectionDetails = this.getDetectionDetails(this.detectionDetails,sec);
  this.frameCounter++;

  console.log(this.$box.find('.bb').length);

  this.$box.find('.bb').remove();
  let div = '';
  for (let i = 0; i < this.detectionDetails.length; i++) {

    div += '<div class="bb" style="width:' + this.detectionDetails[i].bb[2] +
      'px;height:' + this.detectionDetails[i].bb[3] + 'px;top:' + this.detectionDetails[i].bb[1] + 'px;left:' +
      this.detectionDetails[i].bb[0] + 'px;">' +
      '<div style="position: absolute;top:-20px;background-color: green">' + this.detectionDetails[i].conf + '</div>' +
      '</div>';

  }
  this.$box.append(div);

}

0 ответов

Другие вопросы по тегам