Я только что скопировал программу для обнаружения лиц по видео, но захват видео очень медленный, и я не знаю, как это исправить! Каждый раз, когда я меняю FPS, возвращается одно и то же значение, которое составляет 59,98 ...
Я пробую много решений в стеке (в основном использую язык C ++ и тик или таймер), но все равно получаю тот же кадр в секунду.
private void StartButton_Click(object sender, EventArgs e)
{
grabber = new VideoCapture(videoPath);
grabber.QueryFrame();
//System.Threading.Thread.Sleep(1000);
grabber.SetCaptureProperty(CapProp.Fps, 100); //fps setting default 5
Console.WriteLine("Show FPS ->>>> " + grabber.GetCaptureProperty(CapProp.Fps));
Application.Idle += new EventHandler(FrameGrabber);
StartButton.Enabled = false;
}
void FrameGrabber(object sender, EventArgs e)
{
currentFrame = grabber.QuerySmallFrame(); //Orginalley use QueryFrame() method.
Image<Bgr, Byte> currentImageFrame = currentFrame.ToImage<Bgr, Byte>();
currentImageFrame.Resize(320, 240, Emgu.CV.CvEnum.Inter.Cubic);
gray = currentImageFrame.Convert<Gray, byte>();
Rectangle[] facesDetected = Face.DetectMultiScale(gray, 1.01, 7, new Size(30, 30));
numberLabel.Text = "";
.
.
.
}