Beispiel #1
0
        private void TimerTick(object sender, EventArgs e)
        {
            var image = _camera.Capture();

            ShowOriginal(image);
            InitTitle();
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
 protected virtual Mat Capture()
 {
     return(Camera.Capture());
 }