Node.js 如何在raspberry pi中运行opencv4nodejs视频捕获

Node.js 如何在raspberry pi中运行opencv4nodejs视频捕获,node.js,opencv,raspberry-pi,Node.js,Opencv,Raspberry Pi,我已经将opencv4nodejs库添加到我的raspberry pi包中,我正在尝试访问picam 2摄像机,但我不断收到错误“错误:VideoCapture::New-未能打开捕获”。我正在运行的脚本如下所示: import * as cv from 'opencv4nodejs' async function main() { const wCap = new cv.VideoCapture(0); const intvl = setInterval(() => {

我已经将opencv4nodejs库添加到我的raspberry 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,我正在raspberry pi 3b+上运行这个内部docker,使用resin.io部署映像。

您试过运行吗

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

您试过跑步吗

sudo modprobe bcm2835-v4l2

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

这里是每次启动pi时运行的整洁命令

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

这里是每次启动pi时运行的整洁命令

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

我遵循和的方法,并在每次pi启动时自动设置它

但是,的说明不适用于我,因此以下是我的组合解决方案:

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

#!/bin/bash
sudo modprobe bcm2835-v4l2
  • 按ctrl-x键保存脚本,然后按y键,然后按enter键保存脚本
2) 使脚本可执行:
chmod+x~/setuppicamera.sh

#!/bin/bash
sudo modprobe bcm2835-v4l2
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

如果您看到
未能打开/dev/video0:没有这样的文件或目录
则出现了问题。请仔细检查上述步骤,然后重试。请注意,您的picamera必须在启动时连接,此脚本才能正常工作。

我遵循和的方法,并在每次pi启动时自动设置

但是,的说明不适用于我,因此以下是我的组合解决方案:

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

#!/bin/bash
sudo modprobe bcm2835-v4l2
  • 按ctrl-x键保存脚本,然后按y键,然后按enter键保存脚本
2) 使脚本可执行:
chmod+x~/setuppicamera.sh

#!/bin/bash
sudo modprobe bcm2835-v4l2
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

如果您看到
未能打开/dev/video0:没有这样的文件或目录
则出现了问题。请仔细检查上述步骤,然后重试。请注意,您的picamera必须在启动时连接,此脚本才能正常工作。

此外,如果您希望Pi在每次启动时自动运行脚本,可以按照此处的说明操作:此外,如果您希望Pi在每次启动时自动运行脚本,可以按照此处的说明操作: