0

我在 p5.js 网络编辑器中使用 ml5 的poseNet,在使用网络摄像头的用户脸上放置一个时髦的头部图像。当框架中没有人时,我希望草图绘制一个警告标志(草图文件中的图像“warning1.png” )。当检测到 0 个姿势时,草图已经可以记录“框架中没有人” ,但是当它不是在绘图函数中而是在设置函数中写入时,如何在画布上绘制图像warning1.png ?

if (poses.length == 0) {
    console.log('no one in the frame')
  }

当框架中有多个人时(我正在使用poseNet的multiPose),同样的情况也适用。草图在框架中检测到 +1 人(并且控制台记录“框架中的人太多”)......

if (poses.length > 1) {
      console.log('too many people in the frame')
  }

...但是我如何在画布上绘制图像“warning2.png” 。

另外,我希望funkyhead.png图像在上述情况之一发生时消失——现在图像总是被绘制。这是我在 p5.js 网络编辑器中的草图: https ://editor.p5js.org/saskiasmith/sketches/_5O_aAzE _

非常感谢!!

4

1 回答 1

1

您可以只创建另一个全局变量来跟踪当前是否正在发生错误。gotPoses您可以在 if 语句中添加 else 语句。然后将全局变量设置为 true 或 false。在draw您使用相同的全局变量来确定是否显示图像。

所以: let noPoseDetected = false;

在 getPoses 中:

if (poses.length == 0) {
    console.log('no one in the frame');
    noPoseDetected = true;
  } else {
    noPoseDetected = false;
  }

然后在平局:

if (noPoseDetected) {
    image(warning1, 0, 0, 50,50);
}

这应该适用于您的所有用例。

于 2021-03-20T15:57:28.317 回答