尝试使用OpenCV保存网络摄像头图片时出错

时间:2012-01-18 21:32:25

标签: python opencv webcam

import cv

capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)
cv.SaveImage("test.JPG", img)

您好, 我只想在我的Ubuntu 10上使用OpenCv和Python从我的网络摄像头保存图片。 OpenCv可以与网络摄像头连接。

但是我收到了这个错误:

OpenCV Error: Null pointer (NULL array pointer is passed) in cvGetMat, file /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp, line 2376

Traceback (most recent call last):
  File "video.py", line 5, in <module>
    cv.SaveImage("test.JPG", img)
cv.error: NULL array pointer is passed

2 个答案:

答案 0 :(得分:4)

自己去急诊室,然后使用SimpleCV。它是OpenCV Python绑定的Pythonic包装器和一些其他工具(它使用Numpy,Scipy和PIL):

from SimpleCV import *

camera = Camera()
image = camera.getImage()

image.save('test.JPG')

答案 1 :(得分:3)

我一遍又一遍地看到这个错误:CaptureFromCAM()调用失败,这意味着QueryFrame()因此失败并返回NULL作为图像,导致{{1}也失败了。

这里需要考虑两件事:

1)您的网络摄像头可能不是索引0(尝试-1或1) 2)学会安全编码!始终检查正在调用的函数的返回。这种做法将为您节省大量时间:

SaveImage()