/// <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); }
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; }