如何在覆盆子pi中运行opencv4nodejs VideoCapture

时间:2018-06-04 22:45:59

标签: node.js opencv raspberry-pi

我已经将opencv4nodejs库添加到我的覆盆子pi包中,我正在尝试访问picam 2视频摄像头,但我一直收到错误“错误:VideoCapture :: New - 无法打开捕获”。我正在运行的脚本如下:

import * as cv from 'opencv4nodejs'

async function main() {
  const wCap = new cv.VideoCapture(0);
  const intvl = setInterval(() => {
    let frame = wCap.read();
    // loop back to start on end of stream reached
    if (frame.empty) {
      wCap.reset();
      frame = wCap.read();
    }
    console.log(frame);
  }, 0);
}

main()

FWIW,我在树莓pi 3b +上运行这个docker,使用resin.io来部署图像。

3 个答案:

答案 0 :(得分:2)

您是否尝试过跑步

sudo modprobe bcm2835-v4l2

在脚本运行之前在pi上?否则,opencv将无法正确识别您的picam。

答案 1 :(得分:2)

这是我每次启动pi时都会运行的整洁命令

 #!/bin/bash
 cd 
 cd /dev
 sudo modprobe bcm2835-v4l2
 v4l2-ctl --list-devices

答案 2 :(得分:0)

我遵循@MForMarlon@z Eyeland的方法,每次pi启动时都会自动进行设置。

但是,running a script on boot的说明对我不起作用,因此这是我的综合解决方案:

1)在根目录下创建脚本:nano ~/setuppicamera.sh

#!/bin/bash
sudo modprobe bcm2835-v4l2
  • 先按ctrl-x,然后按y,再按enter,保存脚本

2)使脚本可执行:chmod +x ~/setuppicamera.sh

3)将脚本添加到桌面自动启动文件:

  • 打开自动启动文件:sudo nano ~/.config/lxsession/LXDE-pi/autostart
  • @xscreensaver -no-splash上方创建新行并添加@/home/pi/setuppicamera.sh
  • 保存文件:先按ctrl-x然后按y然后按enter

现在,每次重启时,您都应该能够从源0访问picamera。

要测试它是否有效,请使用sudo reboot重新启动pi,然后运行v4l2-ctl --list-devices。您应该看到以下内容的输出:

mmal service 16.1 (platform:bcm2835-v4l2):
    /dev/video0

如果您反而看到Failed to open /dev/video0: No such file or directory,则出问题了。请仔细检查上述步骤,然后重试。请注意,必须在启动时连接您的picamera,此脚本才能正常工作。