2015-12-12 2 views
0

Я пишу программу с EmguCv и C# для обнаружения некоторого шаблона из видеопотока. Сначала я пытаюсь импортировать видео в проект, но через несколько секунд программа замерзает и больше не загружается.Невозможно выделить достаточное количество памяти при импорте видео в проект

Я действительно не знаю, но я думаю, что что может быть потому, что я делаю что-то неправильно при импорте видео, прежде всего потому, что программа использует 2 Гб оперативной памяти через 14 секунд

enter image description here

чтобы импортировать видео и отображать его на GUI, я использую этот код:

private void timer1_Tick(object sender, EventArgs e) 
{ 
    Orginal.Image = _capture.QueryFrame();   
} 

private void openFileDialog1_FileOk(object sender, CancelEventArgs e) 
{ 
    _capture = new Capture(openFileDialog1.FileName.ToString()); 
} 

private void button2_Click(object sender, EventArgs e)//Import-Button 
{ 
    openFileDialog1.ShowDialog(); 
    string _FilePath = openFileDialog1.FileName.ToString(); 
    textBox1.Text = _FilePath; 
} 

private void button1_Click(object sender, EventArgs e) //Start-Button 
{ 
    My_Time.Interval = 1000/FPS; 
    My_Time.Tick += new EventHandler(timer1_Tick); 
    My_Time.Start(); 
    _capture = new Capture(openFileDialog1.FileName.ToString()); 
} 

это правильный способ I mport видео, или есть лучший способ?

Исключение с этим выброшены считывает следующий:

Emgu.CV.Util.CvException в Emgu.CV.dll ("OpenCV: Не удалось выделить 6220800 байт")

+0

Поскольку вы обрабатываете этот кадр за кадром, вы должны вызывать его на захват после каждого его сохранения. – misha130

ответ

1

вы имеете утечку памяти для каждого изображения вы захватывая с

Orginal.Image = _capture.QueryFrame(); 

Я не знаю ваших клещ таймер миллисекунды, но если вы получаете 6MB изображение каждые 25 мс вы получаете 150 МБ каждую секунду, а через 14 секунд вы получаете 2 ГБ памяти.

Просто скачайте один из классических примеров, чтобы воспроизводить/записывать видеофайлы и выполнять обнаружение patter в соответствии с вашими потребностями. http://www.emgu.com/wiki/index.php/Video_Files