SimpleCV摄像头getImage()错误(没有属性'threaded')
我正在尝试运行一个简单的脚本,想通过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)?