SimpleCV摄像头getImage()错误(没有属性'threaded')

5 投票
3 回答
1612 浏览
提问于 2025-04-17 17:43

我正在尝试运行一个简单的脚本,想通过SimpleCV 1.3.0获取我的网络摄像头的画面,使用的是Logitech HD C270摄像头(我也试过Logitech tessar 2.0/3.7),在64位的Linux Mint 12系统上。

当我运行以下脚本时

from SimpleCV import *

cam = Camera()
while(True):
    img = cam.getImage()
    img.show()

会弹出一个窗口,我可以看到摄像头的画面。但是,在某些看起来随机的时刻,画面会卡住,并在每次执行img = cam.getImage()时出现以下错误:

VIDIOC_DQBUF: No such device
libv4l2: error dequeuing buf: No such device

从那时起,当我尝试再次运行相同的脚本时,窗口会瞬间打开,然后消失,并且在我的脚本的img = cam.getImage()这一行出现以下错误:

File "/usr/lib/pymodules/python2.7/SimpleCV/Camera.py", line 579, in getImage
  if (not self.threaded):
AttributeError: Camera instance has no attribute 'threaded'

这个错误一直存在,直到我重启电脑,无论我的摄像头是否插入,都会发生这种情况。不过,其他摄像头软件(比如cheese)仍然可以正常使用这个摄像头。

3 个回答

0

这通常意味着SimpleCV无法使用相机。原因可能有很多:

  • 相机可能被其他程序占用,无法使用。
  • 在电脑的BIOS设置中,相机被禁用了。
  • 相机的驱动程序没有安装。
  • 还有其他与你的系统有关的原因。
0

我看到这个问题很早就被提出来了。所以对于将来会遇到这个问题的人,想给你们一些建议。

首先,你确认过摄像头能正常工作吗?最好先用一个可以访问摄像头的软件来检查一下。比如可以用这个命令安装一个摄像头软件:

sudo apt-get install webcam

在我的电脑上(Lubuntu 15.04),我确认摄像头正常后,就可以运行代码了。

顺便说一下,

cam = Camera(0)cam = Camera() 这两种写法都能正常工作。

1

你有没有试过像这样做:

cam = Camera(0)?

撰写回答