face-api/build/draw/drawFaceExpressions.js

29 lines
1.6 KiB
JavaScript
Raw Normal View History

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.drawFaceExpressions = void 0;
const classes_1 = require("../classes");
const faceExpressionNet_1 = require("../faceExpressionNet");
const WithFaceDetection_1 = require("../factories/WithFaceDetection");
const WithFaceExpressions_1 = require("../factories/WithFaceExpressions");
const utils_1 = require("../utils");
const DrawTextField_1 = require("./DrawTextField");
function drawFaceExpressions(canvasArg, faceExpressions, minConfidence = 0.1, textFieldAnchor) {
2020-08-18 14:04:33 +02:00
const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];
faceExpressionsArray.forEach(e => {
const expr = e instanceof faceExpressionNet_1.FaceExpressions
2020-08-18 14:04:33 +02:00
? e
: (WithFaceExpressions_1.isWithFaceExpressions(e) ? e.expressions : undefined);
2020-08-18 14:04:33 +02:00
if (!expr) {
throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');
}
const sorted = expr.asSortedArray();
const resultsToDisplay = sorted.filter(expr => expr.probability > minConfidence);
const anchor = WithFaceDetection_1.isWithFaceDetection(e)
2020-08-18 14:04:33 +02:00
? e.detection.box.bottomLeft
: (textFieldAnchor || new classes_1.Point(0, 0));
const drawTextField = new DrawTextField_1.DrawTextField(resultsToDisplay.map(expr => `${expr.expression} (${utils_1.round(expr.probability)})`), anchor);
2020-08-18 14:04:33 +02:00
drawTextField.draw(canvasArg);
});
}
exports.drawFaceExpressions = drawFaceExpressions;
2020-08-18 14:04:33 +02:00
//# sourceMappingURL=drawFaceExpressions.js.map