public PreviewFeature(string name, CWatchZone watchZone, CWatcher watcher, CWatchImage watchImage) { Name = name; WatchZone = watchZone; Watcher = watcher; WatchImage = watchImage; }
private static void CompareAgainstFeature( ref double[] deltas, ref double[] benchmarks, DateTime now, IMagickImage fileImageComposed, CWatcher cWatcher, CWatchImage cWatchImage) { if (!cWatchImage.IsPaused(now)) { var benchmark = TimeStamp.Now; using (var fileImageCompare = fileImageComposed.Clone()) using (var deltaImage = cWatchImage.MagickImage.Clone()) { if (cWatchImage.HasAlpha) { fileImageCompare.Composite(cWatchImage.AlphaChannel, CompositeOperator.Over); } SetDelta(ref deltas, fileImageCompare, deltaImage, cWatcher, cWatchImage); SetBenchmark(ref benchmarks, benchmark, cWatchImage); } } else { deltas[cWatchImage.Index] = double.NaN; benchmarks[cWatchImage.Index] = 0; } }
private static void SetDelta( ref double[] deltas, IMagickImage fileImageCompare, IMagickImage deltaImage, CWatcher cWatcher, CWatchImage cWatchImage) { var metricResult = fileImageCompare.Compare(deltaImage, cWatcher.ErrorMetric); deltas[cWatchImage.Index] = cWatcher.ErrorMetric.Standardize( cWatchImage.MetricUpperBound, metricResult, cWatchImage.TransparencyRate); }
private static void SetBenchmark(ref double[] benchmarks, TimeStamp timeStamp, CWatchImage cWatchImage) { benchmarks[cWatchImage.Index] = (TimeStamp.Now - timeStamp).TotalSeconds; }