Skip to content

KCF Tracker memory not free #2264

Open
Open
@beifengche

Description

@beifengche

System information (version)

  • OpenCV => 3.2
  • Operating System / Platform => Linux 64 Bit
  • Compiler => gcc 7.4
Detailed description

KCF Tracker
Memory grows during initialization ,
Memory does not free when destroyed

Steps to reproduce
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/tracking.hpp"
#include <iostream>
#include <algorithm>
using namespace cv;
using namespace std;
int test(int argc, char* argv[])
{
    Rect2d roi;
    Mat frame;
    Ptr<Tracker> trackers[100] ;
     VideoCapture cap("test.mp4");
    int fps = cap.get(CAP_PROP_FPS);
    cap >> frame;
    roi = Rect2d(114, 114, 75, 75); //test
    for (int i = 0;i<100;i++)
    {
        trackers[i] = Tracker::create("KCF") ;
        trackers[i]->init(frame,roi);
    }
    int in = 0;
    for (int index = 0;index<1000;index++)
    {
        cap >> frame;
        if(frame.data==NULL)
        {
            printf("Video end--------.\n");
            break;
        }
        cv::Rect2d tmRect;
        for(int j = 0; j<100;j++)
        {
            start = clock();
            static int index = 0;
            index++;
            if(0!=index%10)
            {
                trackers[j]->update(frame,tmRect);
            } else
            {
                trackers[j] = TrackerKCF::create() ;
                trackers[j]->init(frame,roi);
            }
        }
        std::cout<<in<<std::endl;
        in++;
    }
    for(int i = 0;i<100;i++)
    {
        trackers[i]->clear();
        trackers[i].release();
    }
    cap.release();
    return 0;
}
int main(int argc, char* argv[])
{
    int ret = test(argc,argv); //memory not free
    return ret;

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions