我已经将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来部署图像。
答案 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,此脚本才能正常工作。