【问题标题】:Error while trying to save webcam picture with OpenCV尝试使用 OpenCV 保存网络摄像头图片时出错
【发布时间】:2012-01-18 21:32:25
【问题描述】:
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

【问题讨论】:

    标签: python opencv webcam


    【解决方案1】:

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

    from SimpleCV import *
    
    camera = Camera()
    image = camera.getImage()
    
    image.save('test.JPG')
    

    【讨论】:

      【解决方案2】:

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

      这里需要考虑两件事:

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

       capture = cv.CaptureFromCAM(0)
       if not capture:
           // deal with error, return, print a msg or something else.
      
       img = cv.QueryFrame(capture)
       if not img:
           // deal with error again, return, print a msg or something else entirely.
      
       cv.SaveImage("test.JPG", img)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 2021-05-04
        相关资源
        最近更新 更多