0

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

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

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

我也试过:

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

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

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

** 编辑 **

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

4

2 回答 2

3

考虑以下代码:

img = cam.getImage()

如果由于某种原因设备无法检索图像,则为imgNULL 并且调用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()
于 2012-02-22T18:35:29.577 回答
1

我是 SimpleCV 开发人员之一。抱歉,我没有注意到我们的 doc.simplecv.org 不起作用。我会尝试让它立即工作,这只是http://www.simplecv.org/doc/的快捷方式。

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

sudo apt-get install cheese

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

于 2012-02-27T14:18:11.843 回答