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