Как смоделировать HTMLVideoElement в JS? - PullRequest
0 голосов
/ 23 марта 2020

Я использую jsdom для имитации HTML DOM, чтобы получить позу с картинки. Я тоже хочу сделать это с видео, но JSDOM не поддерживает это. Есть ли альтернативный способ обойти это?

const { JSDOM } = require("jsdom");
const { Canvas, createCanvas, Image, ImageData, loadImage } = require("canvas");
const posenet = require('@tensorflow-models/posenet');
require('@tensorflow/tfjs-node');

async function estimatePoseOnImage(image) {
  // load the posenet model from a checkpoint
  const net = await posenet.load();

  const pose = await net.estimateSinglePose(image, {
    flipHorizontal: false
  });

  return pose;
}

function installDOM() {
    const dom = new JSDOM();
    global.document = dom.window.document;

    global.Image = Image;
    global.HTMLCanvasElement = Canvas;
    global.ImageData = ImageData;
    global.HTMLImageElement = Image;
}

async function main() {
    installDOM();

    const img = await loadImage("/path/to/pic.png");
    pose = await estimatePoseOnImage(img);
    console.log(pose);    
}

main();
...