gpt4 book ai didi

python - openCv captureFromCam内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:18 25 4
gpt4 key购买 nike

这是我遇到问题的部分代码,内存使用情况由 memory_profiler 跟踪

27   48.500 MiB    0.000 MiB           logging.debug("Initialize camera...")
29 63.996 MiB 15.496 MiB self.capture = cv.CaptureFromCAM(0)
30 78.102 MiB 14.105 MiB cv.SetCaptureProperty(self.capture,cv.CV_CAP_PROP_EXPOSURE,self.config.trackExposure)
31 59.551 MiB -18.551 MiB del self.capture

创建捕获对象和配置属性使用 29.601 MiB 内存。

但是,当我删除 self.capture 时,它​​只会回收 18.551 MiB。

在 cv2 中是否也...

28   48.480 MiB    0.000 MiB           logging.debug("Initialize camera...")
30 65.652 MiB 17.172 MiB self.capture = cv2.VideoCapture(0)
31 77.883 MiB 12.230 MiB self.capture.set(cv.CV_CAP_PROP_EXPOSURE,self.config.trackExposure)
32 59.332 MiB -18.551 MiB self.capture.release()
33 59.332 MiB 0.000 MiB del self.capture

最佳答案

跟进 -

找不到我的问题的答案,所以现在我的解决方法是在整个脚本退出之前不释放/删除相机。

似乎存在“内存税”,opencv 不会在您每次打开和关闭相机时释放一些内存。

如果当您返回缓冲区时缓冲区似乎滞后或保存旧图像,我的解决方法是手动“清理”缓存...

for x in range(3):
garbage = self.capture.QueryFrame()

它并不优雅,但可以完成工作。

关于python - openCv captureFromCam内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26965527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com