从raspberry pi上的网络摄像头获取Python输入?

2024-05-20 08:46:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个索尼ps3眼睛作为我的pi上的一个OpenCL python程序的网络摄像头输入,但出于某种原因,不管我做什么,pi python编译器都没有访问网络摄像头。然而,同样的代码运行在我的笔记本电脑上使用同样的摄像头运行完美。然后我检查了我的个人接口上的usb设备,它显示“sony playstation 3 eye cam”在usb端口6上。另外,当我在圆周率上使用“运动”软件包时,我可以完美地使用相机作为输入。所以我的问题是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)

Tags: 网络index编译器piframecvcamerausb
2条回答

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

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

我从未更新过这个,但我的解决方案是:我使用了覆盆子Pi的运动包来接收图像(因为索尼Ps3 EyeToy相机没有编写与Pi兼容的驱动程序),然后使用OpenCV来分析每个图像。在每次图像进入时执行此操作(每秒多次)与通过OpenCV分析视频相同。此实现完全符合我的需要,并且我在一定时间段后使用其他Bash工具删除旧图像文件,这样就不会不必要地填满内存。

相关问题 更多 >