跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • opencv Python 内存泄漏
未分類
23 10 月 2020

opencv Python 内存泄漏

opencv Python 内存泄漏

資深大佬 : allenwuli 6

大佬们,有人碰到下面 这样的情况吗?

def cv2_image(path): img = cv2.imread(path) return img

for i in file_path: img = cv2_img(i)

重复的调用 cv2_img()读图,然后内存爆掉。

大佬有話說 (8)

  • 資深大佬 : chesterzzy

    不该爆吗?

  • 主 資深大佬 : allenwuli

    @chesterzzy 不该爆啊

  • 資深大佬 : xiaoming1992

    不停往内存读,垃圾不能回收,肯定要爆啊

  • 主 資深大佬 : allenwuli

    @xiaoming1992 一批一批的读图的,一批处理完结束。再读下一批,变量有释放,引用计数为 0 了,但是还是占着内存。用 gc.collect(),都不能释放。这应该是 opencv 的 bug,python 的 opencv 不知道怎么解决,c 语言的可以使用 release()。

  • 資深大佬 : tkmiles

    @allenwuli

    import cv2

    def main():
    def cv2_image(path):
    img = cv2.imread(path)
    return img
    p = r”c:miyou.jpg”
    file_path = [p] * 1000
    for i in file_path:
    img = cv2_image(i)
    print(“done”)
    return

    if __name__ == “__main__”:
    main()

    单独这么测内存没泄露呀

    windows python3.6 opencv-python-3.3.3

  • 資深大佬 : czdpzc

    同测没爆内存
    Python 3.7.7 opencv-python 4.3.0

  • 主 資深大佬 : allenwuli

    @tkmiles 这么测应该是不行的,同一张图读一千次。在内存里应该只有一张图

  • 資深大佬 : czdpzc

    @allenwuli
    5 那么测应该是对的。但我也用 CelebA 数据库试了一下,202599 张人脸图像,一切正常。
    “`
    import cv2 as cv
    import os

    def img_read(path):
    img = cv.imread(path)
    return img

    def main():
    path = “celebA_dataset/img_align_celeba/”
    imgs = os.listdir(path)
    print(len(imgs))

    count=0
    for i in imgs:
    img = img_read(os.path.join(path,i))
    count+=1
    print(count)

    print(“done”)

    if __name__ == “__main__”:
    main()
    “`

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具