/// <summary> /// 以指定评估指标比较当前图像并计算图像质量。 /// </summary> /// <param name="indicator">图像质量的评估指标。</param> /// <returns>以 <paramref name="indicator"/> 指标对比当前图像得到的图像质量。</returns> private double CalculateImageQuality(EvaluationIndicator indicator) { using var sourceBitmap = PairedImageQuality.TryLoadBitmap(this.SourceFile.FullName); using var targetBitmap = PairedImageQuality.TryLoadBitmap(this.TargetFile.FullName); var factory = BitmapEvaluatorFactory.GetDefault(PixelFormat.Format24bppRgb); return(factory.CreateEvaluator(indicator).Evaluate(sourceBitmap, targetBitmap)); }
/// <summary> /// 获取以指定评估指标对比当前图像得到的图像质量。 /// </summary> /// <param name="indicator">图像质量的评估指标。</param> /// <returns>以 <paramref name="indicator"/> 指标对比当前图像得到的图像质量。</returns> public double this[EvaluationIndicator indicator] => this.LazyImageQuality[indicator].Value;
/// <summary> /// 创建计算指定评估指标的 <see cref="Bit8BitmapEvaluator"/> 类的实例。 /// </summary> /// <param name="indicator">要使用的位图图像质量评估指标。</param> /// <returns>计算 <paramref name="indicator"/> 表示的评估指标的 /// <see cref="Bit8BitmapEvaluator"/> 类的实例。</returns> /// <exception cref="ArgumentOutOfRangeException"> /// <paramref name="indicator"/> 不为有效的枚举值。</exception> public override IBitmapEvaluator CreateEvaluator(EvaluationIndicator indicator) => indicator switch {