Example #1
0
        /// <summary>
        /// Writes a single image into the specified stream.
        /// </summary>
        /// <typeparam name="TColor">Color type.</typeparam>
        /// <param name="writer">image stream writer.</param>
        /// <param name="image">Image to write.</param>
        /// <returns>True if the writing operation is successful, false otherwise.</returns>
        public static bool Write <TColor>(this ImageStreamWriter <Image <TColor> > writer, TColor[,] image)
            where TColor : struct, IColor
        {
            bool result = false;

            using (var uImg = image.Lock())
            {
                result = writer.Write(uImg);
            }

            return(result);
        }
Example #2
0
        private static async Task RunBenchmark(TestOptions options, ILogger logger, IMutableImageFactory <MutableByteImage> factory)
        {
            try
            {
                logger.WriteLine("Running Benchmarks", Verbosity.Info);

                logger.WriteLine("Testing Filters", Verbosity.Info);

                foreach (var filter in new List <IFilter <MutableByteImage> > {
                    new MinFilter(new MinFilterOptions {
                    }),
                    new MinVecFilter(new MinFilterOptions {
                    }),
                    new MaxFilter(new MaxFilterOptions {
                    }),
                    new MaxVecFilter(new MaxFilterOptions {
                    }),
                    new AttackDecayFilter(new AttackDecayFilterOptions {
                    }),
                    new AttackDecayVecFilter(new AttackDecayFilterOptions {
                    })
                })
                {
                    Stopwatch stopwatch = new Stopwatch();


                    var imageReader = new TestImageReader <MutableByteImage>
                                          (options.Count,
                                          options.Width,
                                          options.Height,
                                          PixelFormat.Format24bppRgb,
                                          logger,
                                          factory);
                    var imageWriter = new ImageStreamWriter <MutableByteImage>(logger, factory, Stream.Null);
                    var strategy    = new StackAllMergeStrategy <MutableByteImage>(logger, factory);

                    stopwatch.Start();
                    await strategy.Process(imageReader, new List <IFilter <MutableByteImage> > {
                        filter
                    }, imageWriter);

                    stopwatch.Stop();
                    logger.WriteLine($"Filter {filter.Name} took {stopwatch.ElapsedMilliseconds}", Verbosity.Info);
                }
            }
            catch (Exception e)
            {
                logger.LogException(e);
                throw;
            }
        }
        public CaptureAndRecordingDemo()
        {
            InitializeComponent();
            pictureBox.SizeMode = PictureBoxSizeMode.Zoom;

            reader = new CameraCapture(0); //capture from camera
            //reader = new FileCapture(Path.Combine(getResourceDir(), "Welcome.mp4"));
            reader.Open();

            writer = new VideoWriter(@"output.avi", reader.FrameSize, /*reader.FrameRate does not work Cameras*/ 30); //TODO: bug: FPS does not work for cameras
            writer.Open();

            Application.Idle += capture_NewFrame;
        }
        public CaptureAndRecordingDemo()
        {
            InitializeComponent();
            pictureBox.SizeMode = PictureBoxSizeMode.Zoom;

            reader = new CameraCapture(0); //capture from camera
            //reader = new FileCapture(Path.Combine(getResourceDir(), "Welcome Accord.NET Extensions.mp4"));
            reader.Open();

            writer = new VideoWriter(@"output.avi", reader.FrameSize, /*reader.FrameRate does not work Cameras*/ 30); //TODO: bug: FPS does not work for cameras
            writer.Open();

            Application.Idle += capture_NewFrame;
        }
        public CaptureAndRecordingDemo()
        {
            InitializeComponent();
            pictureBox.SizeMode = PictureBoxSizeMode.Zoom;

            //reader = new CameraCapture(0); //capture from camera
            reader = new FileCapture(Path.Combine(getResourceDir(), "Welcome Accord.NET Extensions.mp4"));
            reader.Open();

            writer = new VideoWriter(@"output.avi", reader.FrameSize, reader.FrameRate);
            writer.Open();

            Application.Idle += capture_NewFrame;
        }