Javascript 基于PoseNet绘制图像(在p5.js中)

Javascript 基于PoseNet绘制图像(在p5.js中),javascript,p5.js,ml5,Javascript,P5.js,Ml5,我在p5.js网络编辑器中使用ml5的poseNet,在使用网络摄像头的用户脸上放置一个时髦的头部图像。我希望草图在框架中没有人时绘制警告标志(草图文件中的图像“warning1.png”)。当草图检测到0个姿势时,它已经可以记录“帧中没有人”,但是如果图像warning1.png不是在draw函数中而是在setup函数中写入的,我如何在画布上绘制图像warning1.png if (poses.length == 0) { console.log('no one in the fram

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

if (poses.length == 0) {
    console.log('no one in the frame')
  }
当画面中有多个人时(我使用的是poseNet的multipoe),情况也是如此。草图检测到帧中有+1人(控制台记录“帧中的人太多”)

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

此外,我希望funkyhead.png图像在出现上述情况时消失-现在图像总是绘制为。下面是我在p5.js web编辑器中的草图: _


非常感谢

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

因此:
让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);
}
这应该适用于您的所有用例

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