内存泄漏opencv cv2.createbackgroundsubtractionmog2

时间:2016-03-07 21:19:10

标签: python opencv numpy memory-leaks background-subtraction

在Windows 10上,python 2.7.11,最近使用cmake构建的opencv 3

这是一个尝试从图片而不是视频创建背景模型的简单示例。这仅在使用文件中的图片时发生,而不是在使用视频文件中的cv2.videocapture读取帧时。它在循环中的第一个位置失败。一旦它们是numpy数组,它有什么关系?

看着记忆,它确实会上升,但肯定不会大幅增加。

我尝试过较小的照片(形状〜(1920,2560,3),3张照片后出现错误。

import cv2 
import glob
import os
import cv2.bgsegm


#File formats
ext="C:/Users/Ben/Desktop/pics2/*.jpg"

#Create mog
b=cv2.createBackgroundSubtractorMOG2()

#Find photos
jpgs=[]
jpgs.extend(glob.glob(ext))

#Read in photos and add to background
for x in jpgs:
    current_image=cv2.imread(x)
    print("Photo size is %s" % str(current_image.shape))
    b.apply(current_image)        

返回:

Photo size is (2992, 5152, 3)
OpenCV Error: Insufficient memory (Failed to allocate 1541478400 bytes) in OutOfMemoryError, file C:\opencv\source\opencv\modules\core\src\alloc.cpp, line 52
OpenCV Error: Assertion failed (u != 0) in create, file C:\opencv\source\opencv\modules\core\src\matrix.cpp, line 432

它可能与此有关,但不明显有一个python解决方案。 https://github.com/Itseez/opencv/issues/4871

0 个答案:

没有答案