OpenCV' 3.0.0-dev'使用Python:While循环cv2.imread()和cv2.VideoCapture.read()函数中的内存泄漏

时间:2014-06-20 03:52:14

标签: python opencv memory-leaks

我最近将OpenCV从2.4.9更新到3.0.0-dev,以便在python界面中使用一些新功能,该功能在OpenCV上使用,并在官方网站上使用Python教程。

我使用它来预先构建以安装http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0-ocl-tech-preview/tp1/

但是我遇到了摄像头捕捉的问题以及while循环中的图像读取问题。 例如

import cv2

cap = cv2.VideoCapture(0)

num = 0
while True:
    ret,frame = cap.read()
    cv2.imshow('video',frame)
    k = cv2.waitKey(1)
    if k == ord('q'):
        break
    elif k == ord('c'):
        cv2.imwrite('photo'+str(num)+'.jpg',frame)
        num += 1

cap.release()
cv2.destroyAllWindows()

如果我用cv2.imread()

更改cap.read()
import cv2

num = 0
while True:
    frame = cv2.imread('D:/Boat/work/hga_counter/test_photo/photo0.jpg')
    cv2.imshow('video',frame)
    k = cv2.waitKey(0)
    if k == ord('q'):
        break
    elif k == ord('c'):
        cv2.imwrite('photo'+str(num)+'.jpg',frame)
        num += 1
cv2.destroyAllWindows()

python.exe使用的内存会随着时间的推移而增加,直到它满了。

我的OpenCV安装程序是否已过时,我必须从最新的源代码编译OpenCV? 或者还有其他解决方案吗?

0 个答案:

没有答案