Утечка памяти OpenCv C - PullRequest
       53

Утечка памяти OpenCv C

0 голосов
/ 26 июня 2019

После использования функции ниже, у меня есть утечки памяти, я пытался использовать помощь из других потоков, но это просто помогло мне минимизировать проблему, не решая ее (используя cvDestroyAllWindows).

void play(FrameNode* list)
{
    cvNamedWindow("Display window", CV_WINDOW_AUTOSIZE); //create a window
    FrameNode* head = list;
    int imgNum = 1, playCount = 0;
    IplImage* image;
    while (playCount < GIF_REPEAT)
    {
        while (list != 0)
        {
            image = cvLoadImage(list->frame->path, 1);
            IplImage* pGrayImg = 0;
            pGrayImg = cvCreateImage(cvSize(image->width, image->height), image->depth, 1);
            if (!image) //The image is empty - shouldn't happen since we checked already.
            {
                printf("Could not open or find image number %d", imgNum);
            }
            else
            {
                cvShowImage("Display window", image); //display the image
                cvWaitKey(list->frame->duration); //wait
                list = list->next;
                cvReleaseImage(&image);
                cvReleaseImageHeader(&pGrayImg);

            }
            imgNum++;
        }
        list = head; // rewind
        playCount++;
    }
    cvDestroyWindow("Display window");
    cvDestroyAllWindows();
    return;
}
...