face-api/src/dom/imageTensorToCanvas.ts

20 lines
599 B
TypeScript
Raw Normal View History

import * as tf from '../../dist/tfjs.esm.js';
2020-08-18 13:54:53 +02:00
import { env } from '../env';
import { isTensor4D } from '../utils';
export async function imageTensorToCanvas(
imgTensor: tf.Tensor,
canvas?: HTMLCanvasElement
): Promise<HTMLCanvasElement> {
const targetCanvas = canvas || env.getEnv().createCanvasElement()
const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0)
const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt())
await tf.browser.toPixels(imgTensor3D, targetCanvas)
imgTensor3D.dispose()
return targetCanvas
}