Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

cv2.VideoCapture leaking memory...

オープン
#1,151 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
python

調査の方向性

まず、提供された Python の再現コードを代表的な動画ファイルで実行し、issue で指定されていない Python、OpenCV、プラットフォームの詳細を記録します。VideoCapture の繰り返しの作成、シーク、読み取り、解放、ガベージコレクションにわたってメモリを追跡します。再現可能なリークを切り分け、関連するコンポーネントまたは最小限の修正を特定できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

incomplete
import psutil
import os
import random
import cv2
import gc

def logMem():
    uss = psutil.Process(os.getpid()).memory_full_info().uss / 1024 / 1024
    print(f"Memory usage: {uss} MB")

def Test(path):
    print("-"*100)
    print(path)
    cap = cv2.VideoCapture(path)
    total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
    print("init")
    logMem()
    for i in range(20):
        k = random.randint(0, total_frames)
        _ = cap.set(cv2.CAP_PROP_POS_FRAMES, k)
        ret, frame = cap.read()
        del ret, frame
    print("finish")
    logMem()
    cap.release()
    del cap
    gc.collect()
    gc.collect()
    gc.collect()
    print("del")
    logMem()
    print("-"*100)

path = 'PATH_TO_VIDEOS_FOLDER'
videos = os.listdir(path)

for i in range(10):
    Test(path + random.choice(videos))

Memory keep growing after every loop iter.

主要言語
Python
スター
5.4k
フォーク
1k
平均マージ
22時間 17分
マージ済み PR(30日)
3

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

opencv/opencv-python のほかの issue

opencv/opencv-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。