3
我使用Python
接口为OpenCV 2.2.0
。以下代码可以正确地从视频文件中抓取帧:OpenCV蟒蛇QueryFrame功能泄漏内存
for f in range(1, frameCount):
# grab the left and right frames
frameL = cv.QueryFrame(videoL)
frameR = cv.QueryFrame(videoR)
# create the image for the first frame
if f==1:
imageL = cv.CreateImage(cv.GetSize(frameL), frameL.depth, frameL.channels)
imageR = cv.CreateImage(cv.GetSize(frameR), frameR.depth, frameR.channels)
# update the images
cv.Copy(frameL, imageL)
cv.Copy(frameR, imageR)
但是,随着我处理更多视频帧,内存消耗量不断增加。根据OpenCV文档,我们不需要释放由cv.QueryFrame
获取的图像数据的内存。这是否正确?我尝试过“del frameL”和“del frameR”,但它没有解决问题。在这个特定函数中,OpenCV的Python包装中是否存在一个错误?
谢谢。
感谢您的答复。但是,如果您查看原始代码,我只创建一次图像数据(imageL/imageR)。我也试过你的版本。内存泄漏问题仍然存在;这就是为什么我怀疑QueryFrame函数泄漏内存。 – Chang 2011-03-16 20:56:52