0

現在、私はこの実用的な例を持っています:

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');

ただし、リソースは適切に解放されていません。この投稿は使用を提案してdel(capture)いますが、この他の投稿では使用をお勧めしcvReleaseCaputeます(ただし、その関数は見つかりません)。

キャプチャを解放する正しい方法はどれですか?

これは私のopencvバージョンです:

In [4]: from cv2 import __version__
In [5]: __version__
Out[5]: '$Rev: 4557 $'
4

1 に答える 1

3

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
于 2012-10-22T18:10:04.870 に答える