xxxxxxxxxx
70
let video;
let poseNet;
let noseX = 0;
let noseY = 0;
let eye1X, eye1Y, eye2X, eye2Y, ear1X, ear1Y;
let mustage;
function preload() {
mustage = loadImage('assets/mustage.png');
}
function setup() {
createCanvas(640, 480);
video = createCapture(VIDEO);
video.hide();
poseNet = ml5.poseNet(video, modelReady);
poseNet.on('pose', gotPoses);
}
function gotPoses(poses) {
// console.log(poses);
if (poses.length > 0) {
console.log(poses);
noseX = poses[0].pose.keypoints[0].position.x;
noseY = poses[0].pose.keypoints[0].position.y;
eye1X = poses[0].pose.keypoints[1].position.x;
eye1Y = poses[0].pose.keypoints[1].position.y;
eye2X = poses[0].pose.keypoints[2].position.x;
eye2Y = poses[0].pose.keypoints[2].position.y;
ear1X = poses[0].pose.keypoints[3].position.x;
ear1Y = poses[0].pose.keypoints[3].position.y;
ear2X = poses[0].pose.keypoints[4].position.x;
ear2Y = poses[0].pose.keypoints[4].position.y;
}
}
function modelReady() {
console.log('model ready');
}
function draw() {
image(video, 0, 0);
fill(255, 0, 0);
// ellipse(noseX, noseY, 50);
image(mustage, noseX, noseY);
fill(0,0,255)
eye(eye1X, eye1Y, 80, 1);
eye(eye2X, eye2Y, 80, -1);
}
function eye(x, y, size, n) {
let angle = frameCount * 0.2;
fill(255);
noStroke();
ellipse(x, y, size, size);
fill(56);
noStroke();
ellipse(x+cos(angle*n)*size/5, y+sin(angle*n)*size/5, size/2, size/2);
}