当代码检测到网络摄像头时,cv2模块没有捕获图像

时间:2016-03-24 08:55:11

标签: python python-2.7 opencv rgb video-capture

我使用的代码是:

import cv2

camera = cv2.VideoCapture(0)
im=camera.read()[1]
print im

我的输出为
 在某些情况下,它会返回RGB值,但不是每次都需要 在哪些情况下它将返回None ??

2 个答案:

答案 0 :(得分:1)

你的问题是:

  

在哪些情况下它会返回None ??

这可以在VideoCapture的文档中找到。 对于函数read,它声明:

  

方法/函数结合了VideoCapture :: grab()和   一次调用中的VideoCapture :: retrieve()。这是最方便的   读取视频文件或从解码和捕获数据的方法   返回刚抓住的框架。我 f没有抓到任何帧(相机   已断开连接,或视频文件中没有更多帧),   方法返回false,函数返回NULL指针。

因此,与相机的连接似乎是个问题。

答案 1 :(得分:1)

import cv2

cv2.namedWindow('webCam')

cap = cv2.VideoCapture(0)


if cap.isOpened():
    ret, frame = cap.read()
else:
    ret = False
    print "problem here"


while True:
    #get frames
    ret,frame = cap.read()
    frame = cv2.flip(frame,1)  # flip image 

    cv2.imshow('webCam', frame)  # show cam

    # to exit
    esc = cv2.waitKey(5) & 0xFF == 27
    if esc:
        break

cap.release()
cv2.destroyAllWindows()