MethodOfAssessment.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using OpenCvSharp;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Drawing;
  5. using System.Linq;
  6. namespace PaintDotNet.Base.DedicatedAnalysis.GrainSize
  7. {
  8. /// <summary>
  9. /// 评定方法
  10. /// </summary>
  11. public abstract class MethodOfAssessment
  12. {
  13. /// <summary>
  14. /// 所属的标准
  15. /// </summary>
  16. public GrainSizeStandard grainSizeStandard;
  17. /// <summary>
  18. /// 标准的方法类型(0 截点法/截距法, 1 面积法)
  19. /// </summary>
  20. public int grainMethodType;
  21. /// <summary>
  22. /// 数据库的name(报告模板)
  23. /// </summary>
  24. public string resourcesName;
  25. /// <summary>
  26. /// 辅助线配置文件名称
  27. /// </summary>
  28. /// <returns></returns>
  29. public string guideXmlName;
  30. // 标准的结果模型
  31. // 试样总检验面积
  32. // 视场面积
  33. // 放大倍数
  34. ///// <summary>
  35. ///// 产生报告
  36. ///// </summary>
  37. //public AnalysisResult generateReport(Mat originalImage, Mat binary, List<RectangleF> rectangles,int kLevel,int viewNum)
  38. //{
  39. // AnalysisResult analysisResult = GetAnalysisResult();
  40. // analysisResult.inclusionsStandard = this.inclusionsStandard;
  41. // analysisResult.mat = originalImage;
  42. // analysisResult.inclusions = inclusions;
  43. // analysisResult.rectangles = rectangles;
  44. // analysisResult.kLevel = kLevel;
  45. // analysisResult.viewNum = viewNum;
  46. // analysisResult.buildResultBody();
  47. // binary.Dispose();
  48. // return analysisResult;
  49. //}
  50. //public abstract AnalysisResult GetAnalysisResult();
  51. //public abstract List<string> getResultConclusionHead();
  52. //public abstract List<string> buildResultConclusion(List<AnalysisResult> analysisResults);
  53. ///// <summary>
  54. ///// 分析结果
  55. ///// </summary>
  56. //public abstract class AnalysisResult
  57. //{
  58. // /// <summary>
  59. // /// 所属标准
  60. // /// </summary>
  61. // public InclusionsStandard inclusionsStandard;
  62. // /// <summary>
  63. // /// 所属图片
  64. // /// </summary>
  65. // public Mat mat;
  66. // /// <summary>
  67. // /// 夹杂物列表
  68. // /// </summary>
  69. // public List<Inclusion> inclusions;
  70. // public List<RectangleF> rectangles;
  71. // public int viewNum;
  72. // public List<string> publicResultHead = new List<string> {"图片","视场"};
  73. // public Dictionary<FieldOfView, List<string>> resultBody = new Dictionary<FieldOfView, List<string>>();
  74. // /// <summary>
  75. // /// K法级别
  76. // /// </summary>
  77. // public int kLevel;
  78. // /// <summary>
  79. // /// 视场模型
  80. // /// </summary>
  81. // public class FieldOfView
  82. // {
  83. // public string name;
  84. // public RectangleF rectangle;
  85. // public List<Inclusion> inclusions;
  86. // /// <summary>
  87. // /// 过滤有效的夹杂物
  88. // /// </summary>
  89. // /// <returns></returns>
  90. // public List<Inclusion> effectiveFilteringInclusion(List<Inclusion> inclusions)
  91. // {
  92. // List<Inclusion> inclusions1 = new List<Inclusion>();
  93. // foreach (var item in inclusions)
  94. // {
  95. // if (this.rectangle.Contains(item.rectProfile) || this.rectangle.IntersectsWith(item.rectProfile))
  96. // {
  97. // inclusions1.Add(item);
  98. // }
  99. // }
  100. // return inclusions1;
  101. // }
  102. // }
  103. // public List<string> getResultHead()
  104. // {
  105. // List<string> resultHead = new List<string>();
  106. // resultHead.AddRange(publicResultHead);
  107. // resultHead.AddRange(getDedicatedResultHead());
  108. // return resultHead;
  109. // }
  110. // public abstract List<string> getDedicatedResultHead();
  111. // public abstract void buildResultBody();
  112. // /// <summary>
  113. // /// 夹杂物评级
  114. // /// </summary>
  115. // /// 评级图暂已硬编码形式实现
  116. // public abstract double ratingInclusion(string type, double value);
  117. //}
  118. }
  119. }