AnalysisReport.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace TeamAAS_VP.Models
  7. {
  8. /// <summary>
  9. /// 最终报告
  10. /// </summary>
  11. public class AnalysisReport
  12. {
  13. public AnalysisParameters Parameters { get; set; }
  14. public AnalysisResult FinalResult { get; set; }
  15. public List<DataPoint> HistoryData { get; set; }
  16. public DateTime StartTime { get; set; }
  17. public DateTime EndTime { get; set; }
  18. public TimeSpan Duration => EndTime - StartTime;
  19. public AnalysisReport()
  20. {
  21. HistoryData = new List<DataPoint>();
  22. }
  23. public string GenerateTextReport()
  24. {
  25. return $@"工业相机图像质量分析报告
  26. 生成时间:{EndTime:yyyy-MM-dd HH:mm:ss}
  27. 分析时长:{Duration.TotalSeconds:F1}秒
  28. 一、分析参数
  29. -----------
  30. 清晰度算法:{Parameters.FocusMethod}
  31. 分析模式:{Parameters.AnalysisMode}
  32. 目标亮度:{Parameters.TargetBrightness}
  33. 实时分析:{Parameters.EnableRealtimeAnalysis}
  34. 二、最终结果
  35. -----------
  36. 清晰度:{FinalResult.Sharpness:F2}
  37. 最佳清晰度:{FinalResult.BestSharpness:F2}
  38. 质量评分:{FinalResult.QualityScore:F1}/100
  39. 分析帧数:{FinalResult.FrameCount}
  40. 三、棋盘格分析
  41. -----------
  42. 检测状态:{(FinalResult.Checkerboard.Detected ? "已检测" : "未检测")}
  43. 黑色均值:{FinalResult.Checkerboard.BlackMean:F1}
  44. 白色均值:{FinalResult.Checkerboard.WhiteMean:F1}
  45. 对比度:{FinalResult.Checkerboard.Contrast:F1}
  46. 建议亮度:{FinalResult.Checkerboard.OptimalBrightness}
  47. 四、统计信息
  48. -----------
  49. 总帧数:{HistoryData.Count}
  50. 平均清晰度:{HistoryData.Average(d => d.Sharpness):F2}
  51. 最大清晰度:{HistoryData.Max(d => d.Sharpness):F2}
  52. 最小清晰度:{HistoryData.Min(d => d.Sharpness):F2}
  53. 五、调整建议
  54. -----------
  55. {string.Join("\n", FinalResult.Suggestions)}
  56. ------------------------
  57. 报告结束";
  58. }
  59. }
  60. }