Some more helper functions
This commit is contained in:
parent
377c60ac92
commit
058a656d13
1 changed files with 44 additions and 23 deletions
67
dist/static/assets/webcam.js
vendored
67
dist/static/assets/webcam.js
vendored
|
@ -219,20 +219,20 @@ function drawPart(feature, closed) {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper around p5.js color class
|
||||
* @param {*} c color, either as array, or string (css name or HEX string)
|
||||
*/
|
||||
function getColor(c) {
|
||||
if(!Array.isArray(c)) c = [c];
|
||||
return new p5.Color(p5.instance, c);
|
||||
}
|
||||
// /**
|
||||
// * Wrapper around p5.js color class
|
||||
// * @param {*} c color, either as array, or string (css name or HEX string)
|
||||
// */
|
||||
// function getColor(c) {
|
||||
// if(!Array.isArray(c)) c = [c];
|
||||
// return new p5.Color(p5.instance, c);
|
||||
// }
|
||||
|
||||
var colors = {
|
||||
red: getColor('red'),
|
||||
blue: getColor('blue'),
|
||||
green: getColor('green'),
|
||||
};
|
||||
// var colors = {
|
||||
// red: getColor('red'),
|
||||
// blue: getColor('blue'),
|
||||
// green: getColor('green'),
|
||||
// };
|
||||
|
||||
function faceDistance(face1, face2){
|
||||
// distance between faces, in pixels, not meters.. for now
|
||||
|
@ -259,16 +259,39 @@ function faceDistance(face1, face2){
|
|||
return Math.sqrt( Math.pow(dx, 2) + Math.pow(dy, 2) ) - r1 - r2;
|
||||
}
|
||||
|
||||
function mergePoints() {
|
||||
// a points should be {x: , y: }
|
||||
|
||||
// collect all points in the arguments:
|
||||
let points = [];
|
||||
|
||||
for(let arg of arguments) {
|
||||
if(Array.isArray(arg)) {
|
||||
points.push(...arg);
|
||||
} else {
|
||||
points.push(arg);
|
||||
}
|
||||
}
|
||||
return points;
|
||||
}
|
||||
|
||||
function getBoundingBox(){
|
||||
// arguments contains points, or sets of points. Find bbox
|
||||
console.log(arguments)
|
||||
|
||||
// return {
|
||||
// top:
|
||||
// left:
|
||||
// width:
|
||||
// height:
|
||||
// }
|
||||
const points = mergePoints(...arguments);
|
||||
|
||||
const xs = points.map((point) => point.x);
|
||||
const ys = points.map((point) => point.y);
|
||||
|
||||
const minx = Math.min(...xs);
|
||||
const miny = Math.min(...ys);
|
||||
|
||||
return {
|
||||
x: minx,
|
||||
y: miny,
|
||||
width: Math.max(...xs) - minx,
|
||||
height: Math.max(...ys) - miny,
|
||||
}
|
||||
}
|
||||
|
||||
function parseDetectionResults(results) {
|
||||
|
@ -277,6 +300,7 @@ function parseDetectionResults(results) {
|
|||
const landmarks = result.landmarks._positions.map((pos) => parseCoordinate(pos));
|
||||
let detection = {
|
||||
'landmarks': landmarks,
|
||||
// TODO: rotation
|
||||
'parts': {},
|
||||
'box': {
|
||||
x: result.alignedRect._box._x * factor_x,
|
||||
|
@ -292,9 +316,6 @@ function parseDetectionResults(results) {
|
|||
}
|
||||
|
||||
return detections;
|
||||
// result.parts
|
||||
// result.alignedRect._box
|
||||
// factor_x, factor_y
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue