如果我说某个词,激活一件事停用另一件事
activate one thing deactivate the other if i say a certain word
我有一个激活图像并使其保持激活状态的代码,但如果满足参数,我想更改为其他图像。如果我说某个词,我想激活一件事并停用另一件事
我的代码:https://editor.p5js.org/perikleousd910/sketches/OI1glzfWS
let video;
let poseNet;
let pose;
let classifier;
let label = "listening";
let soundModelURL = "https://teachablemachine.withgoogle.com/models/xe3C8s4Co/model.json";
var flag = false;
var flag2 = false;
var flag3 = false;
let div = createDiv("div");
//var song = new Audio('sound/Itachi.mp3');
function preload() {
img1 = loadImage("pics/Sharingan_Triple.png");
img2 = loadImage("pics/Untitled-5.jpg");
img3 = loadImage("pics/orochimaruright.png");
img4 = loadImage("pics/orochimaruleft.png");
//song = loadSound('sound/Itachi.mp3');
classifier = ml5.soundClassifier(soundModelURL);
}
function setup() {
createCanvas(640, 480);
video = createCapture(VIDEO);
video.hide();
poseNet = ml5.poseNet(video, modelLoaded);
poseNet.on("pose", gotPoses);
classifier.classify(gotResult);
}
function gotPoses(poses) {
if (poses.length > 0) {
pose = poses[0].pose;
}
}
function modelLoaded() {
console.log("poseNet ready");
}
function draw() {
image(video, 0, 0);
if (flag === true || (pose && label == "HowMuchCanYouSee")) {
flag = true;
let eyeR = pose.rightEye;
let eyeL = pose.leftEye;
let d = dist(eyeR.x, eyeR.y, eyeL.x, eyeL.y);
//sharingan complete
image(img1, pose.leftEye.x - d / 2, pose.leftEye.y - d / 2, d, d);
image(img1, pose.rightEye.x - d / 2, pose.rightEye.y - d / 2, d, d);
} else if (flag2 === true || (pose && label == "Orochimaru")) {
flag2 = true;
let eyeR = pose.rightEye;
let eyeL = pose.leftEye;
let d = dist(eyeR.x, eyeR.y, eyeL.x, eyeL.y);
image(img4, pose.leftEye.x - d / 1.53, pose.leftEye.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
image(img3, pose.rightEye.x - d / 1.2, pose.rightEye.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
}
fill(255, 0, 0);
textSize(24);
textAlign(CENTER, CENTER);
text(label, 118, 15);
}
function gotResult(error, results) {
if (error) {
console.error(error);
return;
}
label = results[0].label;
}
如果我没理解错的话,你可能想要这样的东西;如果没有姿势和标签,全局变量 shownImageSet
将“保持”为最后一个值。
不需要 flag
/flag2
个变量。
// ... initialization code elided ...
let shownImageSet = 0;
function drawImages() {
// Select image set based on pose + label
if (pose) {
if (label == "HowMuchCanYouSee") {
shownImageSet = 1;
}
if (label == "Orochimaru") {
shownImageSet = 2;
}
}
if (shownImageSet) {
// Need to show something?
const eyeR = pose.rightEye;
const eyeL = pose.leftEye;
const d = dist(eyeR.x, eyeR.y, eyeL.x, eyeL.y);
if (shownImageSet == 1) {
image(img1, eyeL.x - d / 2, eyeL.y - d / 2, d, d);
image(img1, eyeR.x - d / 2, eyeR.y - d / 2, d, d);
} else if (shownImageSet == 2) {
image(img4, eyeL.x - d / 1.53, eyeL.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
image(img3, eyeR.x - d / 1.2, eyeR.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
}
}
}
function draw() {
image(video, 0, 0);
drawImages();
fill(255, 0, 0);
textSize(24);
textAlign(CENTER, CENTER);
text(label, 118, 15);
}
我有一个激活图像并使其保持激活状态的代码,但如果满足参数,我想更改为其他图像。如果我说某个词,我想激活一件事并停用另一件事
我的代码:https://editor.p5js.org/perikleousd910/sketches/OI1glzfWS
let video;
let poseNet;
let pose;
let classifier;
let label = "listening";
let soundModelURL = "https://teachablemachine.withgoogle.com/models/xe3C8s4Co/model.json";
var flag = false;
var flag2 = false;
var flag3 = false;
let div = createDiv("div");
//var song = new Audio('sound/Itachi.mp3');
function preload() {
img1 = loadImage("pics/Sharingan_Triple.png");
img2 = loadImage("pics/Untitled-5.jpg");
img3 = loadImage("pics/orochimaruright.png");
img4 = loadImage("pics/orochimaruleft.png");
//song = loadSound('sound/Itachi.mp3');
classifier = ml5.soundClassifier(soundModelURL);
}
function setup() {
createCanvas(640, 480);
video = createCapture(VIDEO);
video.hide();
poseNet = ml5.poseNet(video, modelLoaded);
poseNet.on("pose", gotPoses);
classifier.classify(gotResult);
}
function gotPoses(poses) {
if (poses.length > 0) {
pose = poses[0].pose;
}
}
function modelLoaded() {
console.log("poseNet ready");
}
function draw() {
image(video, 0, 0);
if (flag === true || (pose && label == "HowMuchCanYouSee")) {
flag = true;
let eyeR = pose.rightEye;
let eyeL = pose.leftEye;
let d = dist(eyeR.x, eyeR.y, eyeL.x, eyeL.y);
//sharingan complete
image(img1, pose.leftEye.x - d / 2, pose.leftEye.y - d / 2, d, d);
image(img1, pose.rightEye.x - d / 2, pose.rightEye.y - d / 2, d, d);
} else if (flag2 === true || (pose && label == "Orochimaru")) {
flag2 = true;
let eyeR = pose.rightEye;
let eyeL = pose.leftEye;
let d = dist(eyeR.x, eyeR.y, eyeL.x, eyeL.y);
image(img4, pose.leftEye.x - d / 1.53, pose.leftEye.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
image(img3, pose.rightEye.x - d / 1.2, pose.rightEye.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
}
fill(255, 0, 0);
textSize(24);
textAlign(CENTER, CENTER);
text(label, 118, 15);
}
function gotResult(error, results) {
if (error) {
console.error(error);
return;
}
label = results[0].label;
}
如果我没理解错的话,你可能想要这样的东西;如果没有姿势和标签,全局变量 shownImageSet
将“保持”为最后一个值。
不需要 flag
/flag2
个变量。
// ... initialization code elided ...
let shownImageSet = 0;
function drawImages() {
// Select image set based on pose + label
if (pose) {
if (label == "HowMuchCanYouSee") {
shownImageSet = 1;
}
if (label == "Orochimaru") {
shownImageSet = 2;
}
}
if (shownImageSet) {
// Need to show something?
const eyeR = pose.rightEye;
const eyeL = pose.leftEye;
const d = dist(eyeR.x, eyeR.y, eyeL.x, eyeL.y);
if (shownImageSet == 1) {
image(img1, eyeL.x - d / 2, eyeL.y - d / 2, d, d);
image(img1, eyeR.x - d / 2, eyeR.y - d / 2, d, d);
} else if (shownImageSet == 2) {
image(img4, eyeL.x - d / 1.53, eyeL.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
image(img3, eyeR.x - d / 1.2, eyeR.y - d / 1.5, (d * 3) / 2, (d * 3) / 2);
}
}
}
function draw() {
image(video, 0, 0);
drawImages();
fill(255, 0, 0);
textSize(24);
textAlign(CENTER, CENTER);
text(label, 118, 15);
}