【发布时间】:2013-03-06 17:49:03
【问题描述】:
我有一个运行 Ångström Linux 3.2.28 的 BeagleBone,我正在尝试从我的相机中捕捉一帧。
所以我插入了我的 USB 网络摄像头,并检查 /dev 以确保它显示出来。
确实如此,就像video0(右下角)。我知道这是正确的,因为它在我拔掉相机后消失了。
所以现在我启动 Python 并运行以下命令:
root@beaglebone:/dev# python
Python 2.7.2 (default, Sep 11 2012, 16:15:43)
[GCC 4.5.4 20120305 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
>>> capture=cv.CaptureFromCAM(-1)
>>> img=cv.QueryFrame(capture)
>>> type(capture)
<type 'cv2.Capture'>
>>> type(img)
<type 'NoneType'>
如您所见,我能够充分地创建捕获对象,但我无法从中拉出框架。我也尝试过使用不同(或没有)相机 ID 的整数参数(上面代码中的 -1),但无济于事。
作为参考,在我的笔记本电脑上运行 IPython 中的相同代码如下所示:
In [1]: import cv
In [2]: capture=cv.CaptureFromCAM(-1)
In [3]: img=cv.QueryFrame(capture)
In [4]: type(capture)
Out[4]: cv2.Capture
In [5]: type(img)
Out[5]: cv2.cv.iplimage
你可以看到,这里我确实在捕捉图像。我不确定从这里去哪里。
更新:
我用FFmpeg 玩了一会儿,并且能够通过发出以下命令让相机做出响应(即,它的灯亮起):
root@beaglebone:/# ffmpeg -f video4linux2 -i /dev/video0
这很有趣,因为 apparently CaptureFromCAM 使用 V4L 接口......我不知道从这里去哪里。
【问题讨论】:
-
是否,相机响应。某些相机型号在拍摄图像时会闪烁其 LED 灯。你有没有尝试过类似的工作。还有,保存图片呢?
-
啊,它没有响应......所以这是更多信息,但仍然不确定去哪里?我对 linux 还很陌生。
标签: linux opencv beagleboard angstrom-linux video4linux