python-opencv的一段比较稳定的摄像头视频读取代码

之前利用的代码段不知道什么原因,总是出现窗口不响应的问题,直到测试了下面的代码之后,还比较稳定。

import cv2.cv as cv
import time
cv.NamedWindow("camera",1)
capture = cv.CaptureFromCAM(0)  
while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("camera",img)
    if cv.WaitKey(10) == 27:
        break
del(capture)
cv.DestroyWindow("camera")

而另一段出现问题的代码是:

import cv2
import numpy as np
cap=cv2.VideoCapture(0)
while True:
    ret,image=cap.read()
    cv2.imshow("test",image)
    if cv.WaitKey(10) == 27:
        break
del(capture)
cv.DestroyWindow("camera")

总结下来可能是以下几个方面的原因:
1、使用cv.QueryFrame可能比以图像的方式硬读取更加稳定一些
2、capture的初始化,如果是摄像头的话,用CaptureFromCam可能 会更好一些
3、import cv2.cv as cv 这句是用的原来比较稳定1.0版本

对此知道原因的读者,请不吝赐教。

你可能感兴趣的:(opencv,python,opencv,摄像头)