VideoCapture.open(0)无法识别树莓派摄像头

23

我已经使用树莓派2B进行了一段时间的工作。使用 raspistill 测试 Pi cam 运行良好,但尝试使用 OpenCV 函数,例如 VideoCapture.open(); 就无法正常工作。使用 USB 摄像头尝试相同命令可以正常工作。我尝试了不同的索引作为输入,但对于 pi cam 仍然没有用。我在这里错过了什么?

2个回答

59
sudo modprobe bcm2835-v4l2

将会自动“启用”opencv相机。

请确保您已经从树莓派配置界面(GUI)或者raspi-config中启用了相机。上述操作将加载必要的驱动程序以自动处理一切,即加载适用于树莓派相机的适当接口(v4l2驱动程序)。

在Raspbian Jessie上可以直接使用。其他版本可能默认包含驱动程序,但以下链接包含有关如何编译驱动程序的信息,以防万一。因此,您应该也能够在Pidora上使其正常工作。

更多信息:https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=62364


这对我在Jessie上的问题进行了修复。简单而有效。 - Josh Davis
注意:您的树莓派相机将使用PiCamera库直接运行,但是如果您不运行ats提供的上述命令,则无法直接使用openCV。谢谢。 - user1988824
这对我来说解决了问题。树莓派2型B + Python 3 + OpenCV 3.1.0和Raspbian Stretch。谢谢。 - Marlon
太好了,相机已激活! - Vishal Kaul

3

我假设您的问题是关于C++ API而不是Python API?据我所知,树莓派相机不是USB相机,因此需要采用不同的方法进行处理。 对于Python,有一个名为picamera的包,可以很好地工作(与opencv一起使用)。 我从未使用过C ++接口,但是快速搜索会引导您到这里


确实,我在谈论C++。谢谢你提供的链接! - DMEM
所以这个方法实际上是可行的,但是不能与VideoCapture一起使用。根据我在这里阅读到的内容,无法使用OpenCV的VideoCapture与树莓派相机一起使用。 - DMEM
我在Python中使用openCV进行视频捕获,最终只是C++调用的包装器。我实际上没有使用VideoCapture,而是使用这里的指示从相机获取每个原始帧。他们使用的技巧是使用捕获(而不是记录),但告诉它使用相机的视频端口而不是静态端口。不知道这是否有助于你更进一步… - Claude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接