Следующий код - это метод, с помощью которого я получаю кадры с веб-камеры в моем большом проекте:
Imports Emgu.CV
Imports Emgu.CV.CvEnum
Imports Emgu.CV.Structure
Imports Emgu.CV.UI
Imports Emgu.CV.Util
Public Class Form1
Dim img As Mat
Dim cam As VideoCapture
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
cam = New VideoCapture(0)
Catch ex As Exception
'show error via message box
MessageBox.Show("unable To read from webcam, error: " + Environment.NewLine + Environment.NewLine +
ex.Message + Environment.NewLine + Environment.NewLine +
"Try another")
Return
End Try
AddHandler Application.Idle, New EventHandler(AddressOf Me.ProcessFrame)
End Sub
Sub ProcessFrame(sender As Object, arg As EventArgs)
img = cam.QueryFrame()
ImageBox1.Image = img
End Sub
End Class
По сути, он берет кадр с веб-камеры и вставляет его в поле для изображений в форме. При запуске кода мое потребление памяти выглядит так:
https://i.imgur.com/PRGULG9.png
Из этого я заключаю, что что-то неправильно распределяется, но я не могу понять, что это такое. Чем больше MP у веб-камеры, тем выше всплеск памяти. То же самое при загрузке локальных видеофайлов.