UNPKG

@vladmandic/face-api

Version:

FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS

30 lines (24 loc) 1.13 kB
import { Box, IBoundingBox, IRect } from '../classes/index'; import { FaceDetection } from '../classes/FaceDetection'; import { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection'; import { round } from '../utils/index'; import { DrawBox } from './DrawBox'; export type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}> export function drawDetections( canvasArg: string | HTMLCanvasElement, detections: TDrawDetectionsInput | Array<TDrawDetectionsInput>, ) { const detectionsArray = Array.isArray(detections) ? detections : [detections]; detectionsArray.forEach((det) => { // eslint-disable-next-line no-nested-ternary const score = det instanceof FaceDetection ? det.score : (isWithFaceDetection(det) ? det.detection.score : undefined); // eslint-disable-next-line no-nested-ternary const box = det instanceof FaceDetection ? det.box : (isWithFaceDetection(det) ? det.detection.box : new Box(det)); const label = score ? `${round(score)}` : undefined; new DrawBox(box, { label }).draw(canvasArg); }); }