在raspberry pi上从Webcam获取Python输入?

时间:2013-01-18 06:11:33

标签: python opencv input webcam raspberry-pi

我正在使用sony ps3眼睛作为我正在编写的OpenCL python程序的pi上的网络摄像头输入,但出于某种原因无论我做什么,pi python编译器都没有访问网络摄像头。然而,使用相同的网络摄像头在我的笔记本电脑上运行相同的代码运行完美。然后我检查了我的pi上的usb设备,它说“sony playstation 3 eye cam”在usb端口6上。当使用pi上的“运动”包时,我能够完美地使用相机作为输入。所以我的问题再次是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)

2 个答案:

答案 0 :(得分:1)

我从来没有更新过,但我的解决方案是:我使用Raspberry Pi运动包接收图像(因为Sony Ps3 EyeToy相机没有写入与Pi兼容的驱动程序)然后使用OpenCV来分析每个图像。通过OpenCV分析视频时,每次进入每个图像时都会这样做很多次。这个实现完全符合我的需要,我使用其他Bash工具在一段时间后删除旧的图像文件,所以我的记忆是不必要地填补。

答案 1 :(得分:0)

isochronous USB存在一些已知问题。一些相机问题已经通过最近的修复解决了,但其他问题依然存在(并且显然正在进行中)。您使用的是什么内核版本(uname -a)?

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