using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; namespace PaintDotNet.Base.DedicatedAnalysis.GrainSize { /// /// 评定方法 /// public abstract class MethodOfAssessment { /// /// 所属的标准 /// public GrainSizeStandard grainSizeStandard; /// /// 标准的方法类型(0 截点法/截距法, 1 面积法) /// public int grainMethodType; /// /// 数据库的name(报告模板) /// public string resourcesName; /// /// 辅助线配置文件名称 /// /// public string guideXmlName; // 标准的结果模型 // 试样总检验面积 // 视场面积 // 放大倍数 ///// ///// 产生报告 ///// //public AnalysisResult generateReport(Mat originalImage, Mat binary, List rectangles,int kLevel,int viewNum) //{ // AnalysisResult analysisResult = GetAnalysisResult(); // analysisResult.inclusionsStandard = this.inclusionsStandard; // analysisResult.mat = originalImage; // analysisResult.inclusions = inclusions; // analysisResult.rectangles = rectangles; // analysisResult.kLevel = kLevel; // analysisResult.viewNum = viewNum; // analysisResult.buildResultBody(); // binary.Dispose(); // return analysisResult; //} //public abstract AnalysisResult GetAnalysisResult(); //public abstract List getResultConclusionHead(); //public abstract List buildResultConclusion(List analysisResults); ///// ///// 分析结果 ///// //public abstract class AnalysisResult //{ // /// // /// 所属标准 // /// // public InclusionsStandard inclusionsStandard; // /// // /// 所属图片 // /// // public Mat mat; // /// // /// 夹杂物列表 // /// // public List inclusions; // public List rectangles; // public int viewNum; // public List publicResultHead = new List {"图片","视场"}; // public Dictionary> resultBody = new Dictionary>(); // /// // /// K法级别 // /// // public int kLevel; // /// // /// 视场模型 // /// // public class FieldOfView // { // public string name; // public RectangleF rectangle; // public List inclusions; // /// // /// 过滤有效的夹杂物 // /// // /// // public List effectiveFilteringInclusion(List inclusions) // { // List inclusions1 = new List(); // foreach (var item in inclusions) // { // if (this.rectangle.Contains(item.rectProfile) || this.rectangle.IntersectsWith(item.rectProfile)) // { // inclusions1.Add(item); // } // } // return inclusions1; // } // } // public List getResultHead() // { // List resultHead = new List(); // resultHead.AddRange(publicResultHead); // resultHead.AddRange(getDedicatedResultHead()); // return resultHead; // } // public abstract List getDedicatedResultHead(); // public abstract void buildResultBody(); // /// // /// 夹杂物评级 // /// // /// 评级图暂已硬编码形式实现 // public abstract double ratingInclusion(string type, double value); //} } }