SimpleCV基本的getImage调试

时间:2012-02-22 18:22:17

标签: python webcam image-capture simplecv

我刚刚在Windows 7 Dell XPS上成功安装了SimpleCV。我有一个HP Deluxe Webcam KQ246AA插入其中。我已导航到SimpleCV Shell。我正在尝试运行教程以从网络摄像头拍摄并显示图片。从SimpleCV shell我执行以下行:

cam = Camera()
img = cam.getImage()
img.show()

第一个命令后,我的摄像头上的指示灯亮起。第二个命令后没有任何反应。在第三个命令之后,我得到一些文本输出:<SimpleCV.Display.Display instance at 0x038D2A58>并弹出一个全黑的窗口,然后新窗口执行经典窗口“Not Responding”并询问我是否要强行关闭。当我关闭外壳时,网络摄像头上的指示灯会熄灭。

我也尝试过:

img.save('C:/path/to/file/name.jpg');

将图片保存到正确的位置,但图片全是黑色。我猜这张图片没有被正确捕获,但我不知道为什么会导致img.show()命令崩溃。

我尝试引用SimpleCV文档(http://doc.simplecv.org/),但链接似乎不存在。我想我会从SimpleCV中受益。有没有人有任何建议如何调试这个问题?或者,文档在哪里?我至少要验证我可以从网络摄像头正确捕捉图片。然后开始使用其他一些功能。

**编辑**

我将从他们网站下载的.deb的SimpleCV软件包安装到运行Ubuntu 10.10的Thinkpad X61上。安装5分钟。我插入了一个非常通用的网络摄像头(甚至不确定它是什么品牌)并重复上面的3行代码。我看到我摄像头拍摄的照片出现了。所以一切都在linux上运行,而且非常简单。

2 个答案:

答案 0 :(得分:3)

请考虑以下代码:

img = cam.getImage()

如果由于某种原因设备无法检索图像,img将为NULL并且调用img.show()肯定会使应用程序崩溃。您需要添加适当的检查以防止出现此类问题:

import sys

cam = Camera()
if (not cam)
    print 'Camera() Failed!'
    sys.exit(-1)

img = cam.getImage()
if (not img)
    print 'getImage() Failed!'    
    sys.exit(-1)

# Everything succeeded, display image!
img.show()

答案 1 :(得分:1)

我是SimpleCV开发人员之一。抱歉,我没有注意到我们的doc.simplecv.org无效。我会尽力让它立即运行,这只是http://www.simplecv.org/doc/的捷径。

相机可能无法在Windows上运行,或者您可能必须手动安装驱动程序。 Linux在处理它时要好得多。您还可以通过从应用程序商店安装名为cheese的程序来测试您的相机:

sudo apt-get install cheese

我通常是一个Windows家伙。我还没有找到一个好的Windows网络摄像头查看器,它是免费的开源软件,可以验证您的相机是否正常工作。我们正在研究1.3并尝试进行系统测试,以便在出现任何问题时通知您。在使用SimpleCV进行尝试之前,看看您是否可以验证您的相机是否正在使用Windows。