private void TimerTick(object sender, EventArgs e) { var image = _camera.Capture(); ShowOriginal(image); InitTitle(); }
public async Task RunJobAsync(ICamera camera, CancellationToken cancellationToken) { Logger.Info($"Job {project.ProjectId.Name} started"); fileSystem.Directory.CreateDirectory(jobFolder); var projectFile = fileSystem.Path.Combine(jobFolder, $"{project.ProjectId.Name}.json"); await JsonHelper.SaveAs(fileSystem, project, projectFile); var nextCapture = project.Start; for (var i = 0; (i < project.Images) && !cancellationToken.IsCancellationRequested; i++) { var delay = nextCapture.Subtract(DateTime.UtcNow); var imageName = fileSystem.Path.Combine(jobFolder, $"{i:D4}.jpg"); if (delay > TimeSpan.Zero) { await Task.Delay(delay, cancellationToken); Logger.Info(imageName); await camera.Capture(imageName); await WriteJobStatusAsync(projectFile, nextCapture.Add(project.Interval), i); } else { Logger.Warn($"Missed {imageName} at {nextCapture.ToString("o")}"); } nextCapture = nextCapture.Add(project.Interval); } }
public void CaptureAlwaysNew() { Mat last = null; var sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 30; i++) { var image = _camera.Capture(last); Thread.Sleep(100); last = image; } sw.Stop(); Debug.WriteLine($"{sw.ElapsedMilliseconds} ms elapsed"); }
protected virtual Mat Capture() { return(Camera.Capture()); }