face-api/src/dom/imageTensorToCanvas.ts

20 lines
618 B
TypeScript
Raw Normal View History

import * as tf from '../../dist/tfjs.esm.js';
2020-08-18 13:54:53 +02:00
2020-12-19 17:46:41 +01:00
import { env } from '../env/index';
import { isTensor4D } from '../utils/index';
2020-08-18 13:54:53 +02:00
export async function imageTensorToCanvas(
imgTensor: tf.Tensor,
2020-12-23 17:26:55 +01:00
canvas?: HTMLCanvasElement,
2020-08-18 13:54:53 +02:00
): Promise<HTMLCanvasElement> {
2020-12-23 17:26:55 +01:00
const targetCanvas = canvas || env.getEnv().createCanvasElement();
2020-08-18 13:54:53 +02:00
2020-12-23 17:26:55 +01:00
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);
2020-08-18 13:54:53 +02:00
2020-12-23 17:26:55 +01:00
imgTensor3D.dispose();
2020-08-18 13:54:53 +02:00
2020-12-23 17:26:55 +01:00
return targetCanvas;
}