5

我在我的 pi 上使用索尼 ps3 eye 作为我正在编写的 OpenCL python 程序的网络摄像头输入,但由于某种原因,无论我做什么,pi python 编译器都无法访问网络摄像头。然而,当使用相同的网络摄像头在我的笔记本电脑上运行相同的代码时,它可以完美运行。然后我检查了我的 pi 上的 USB 设备,它指出“sony playstation 3 eye cam”在 USB 端口 6 上。同样,当在 pi 上使用“motion”包时,我能够完美地使用相机作为输入。所以我的问题再次是 python 编译器没有与我在 pi 上的网络摄像头通信。请考虑一下并告诉我如何解决它;我根本想不出有什么问题。这是我使用的示例代码,请帮助我。非常感谢你。

import cv2.cv as cv

#cv.NamedWindow("w1", cv.CV_WINDOW_AUTOSIZE)
camera_index = 0

capture = cv.CaptureFromCAM(camera_index)
while not capture:
  print "error opening capture device, correction attempt"

while True:
  frame = cv.QueryFrame(capture)
  if frame is None:
    print "fail with putting in frame"

  else:
    c = cv.WaitKey(100)
    print 'capturing!'
    cv.SaveImage("pictest.png", frame)
4

2 回答 2

1

我从未更新过这个,但我的解决方案是:我使用 Raspberry Pi 的 Motion Package 接收图像(因为 Sony Ps3 EyeToy 相机没有编写与 Pi 兼容的驱动程序),然后使用 OpenCV 分析每个图像。在每张图像进入时执行此操作,每秒多次,与通过 OpenCV 分析视频相同。此实现非常适合我的需求,我使用其他 Bash 工具在一段时间后删除旧图像文件,所以我的记忆是没有不必要的填充。

于 2013-12-31T06:24:23.620 回答
0

同步 USB存在一些已知问题。一些相机问题已通过最近的修复得到解决,但其他问题仍然存在(并且显然正在处理中)。您使用的是什么内核版本(uname -a)?

修复程序尚未进入官方发行版,因此如果您不想等待,可以运行rpi-update来获取最新的内核(假设您使用的是 Raspbian)。你至少想要#389。

于 2013-03-21T20:05:51.330 回答