我在我的 pi 上使用 sony 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)
最佳答案
我从来没有更新过这个,但我的解决方案是:我使用 Raspberry Pi 的 Motion Package 来接收图像(因为 Sony Ps3 EyeToy Camera 没有编写与 Pi 兼容的驱动程序),然后使用 OpenCV 分析每个图像.在每张图像进来时执行此操作,每秒多次,与通过 OpenCV 分析视频相同。此实现非常适合我的需要,我使用其他 Bash 工具在特定时间段后删除旧图像文件,因此我的内存是没有不必要的填充。
关于python - 从树莓派上的网络摄像头获取 Python 输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393356/