当前,我有这个工作示例:

import cv

capture = cv.CaptureFromCAM(0)

cv.NamedWindow('image')

while True:

    frame = cv.QueryFrame(capture)
    cv.ShowImage('image', frame)

    k = cv.WaitKey(10)

    if k % 256 == 27:
        break

cv.DestroyWindow('image');

但是,资源没有正确释放。此post建议使用del(capture),但在this中,其他建议使用cvReleaseCapute(但我找不到该函数)。

释放捕获的正确方法是哪种?

这是我的opencv版本:
In [4]: from cv2 import __version__
In [5]: __version__
Out[5]: '$Rev: 4557 $'

最佳答案

使用cv2.VideoCapturecapture.release()(用cv2代替cv)

import cv2, cv

capture = cv2.VideoCapture(0)

flag, im_array = capture.read()

image = cv.fromarray(im_array)

cv.SaveImage('output.jpeg', image)

capture.release()                   # release it

关于python - 如何使用python包装器在opencv中正确使用网络摄像头?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13003382/

10-12 19:31