using OpenCvSharp; using PaintDotNet.Base; using PaintDotNet.Base.Functionodel; using System.Collections.Generic; using System.Drawing; namespace PaintDotNet.Data.Param { public abstract class ParamObject { /// /// 无视场执行运算 /// public virtual OpenCvSharp.Mat PerformProcess(OpenCvSharp.Mat src) { return null; } public virtual OpenCvSharp.Mat PerformProcess(OpenCvSharp.Mat src, bool findContours) { return null; } /// /// 执行相的运算 /// /// 相数据 /// public virtual OpenCvSharp.Mat PerformProcess(PhaseModel phaseModel) { return null; } /// /// 执行相的运算 /// /// 源 /// 相 /// 鼠标点击位置 /// public virtual OpenCvSharp.Mat PerformProcess(Mat src, PhaseModel phaseModel, System.Drawing.Point point) { return null; } /// /// 执行相的运算 /// /// 相数据 /// 像素/单位 /// public virtual OpenCvSharp.Mat PerformProcess(PhaseModel phaseModel, double pixelRule) { return null; } /// /// 多视场执行运算 /// /// 视场mat /// 原图mat /// public virtual OpenCvSharp.Mat PerformProcess(OpenCvSharp.Mat src, OpenCvSharp.Mat mat) { return null; } public virtual OpenCvSharp.Mat PerformProcess(OpenCvSharp.Mat src, OpenCvSharp.Mat mat, bool findContours) { return null; } /// /// 多视场执行运算 /// /// 视场mat /// 原图mat /// public virtual OpenCvSharp.Mat PerformProcess(OpenCvSharp.Mat src, OpenCvSharp.Mat mat, PhaseModel phaseModel, System.Drawing.Point point) { return null; } /// /// 多视场执行运算 /// /// hls的mat /// 对应rgba的mat /// 原始图片的mat /// 相 /// 坐标点 /// public virtual OpenCvSharp.Mat PerformProcess(OpenCvSharp.Mat hls, OpenCvSharp.Mat mat, Mat origin, PhaseModel phaseModel, System.Drawing.Point point) { return null; } /// /// 执行有选择区域的运算,例如划痕处理、污迹处理 /// /// 原图mat /// 选择区域mat,除了选择区域外其他部分的像素值全部为0 /// public virtual OpenCvSharp.Mat PerformMaskCal(OpenCvSharp.Mat src, OpenCvSharp.Mat mask) { return null; } /// /// 对应菜单的id /// private ActionType menuId; /// /// 当前操作的图片,"current"表示对当前打开图片进行操作,默认为""表示不对当前图片进行处理(大部分为交互操作) /// ,"addPhase"表示对当前打开图片进行操作后,操作结果加到相上,"currentPhase"表示对当前打开图片的相进行操作后,操作结果保存到新生成的图片上 /// private string openImage = ""; /// /// 参数集合 /// public List lists = new List(); public ActionType MenuId { get { return this.menuId; } set { this.menuId = value; } } public string OpenImage { get { return this.openImage; } set { this.openImage = value; } } /// /// 参数集合 /// public List Lists { get { return this.lists; } set { this.lists = value; } } public void readLists(List initLists) { if (initLists != null) { //foreach (List items in initLists) //{ foreach (Args args in initLists) { //foreach (List item0 in lists) //{ //bool existItem = false; foreach (Args arg0 in lists) { if (arg0.key == args.key) { arg0.initialValue = ((int)args.Value); arg0.value = ((int)args.Value); //existItem = true; break; } } // if (existItem) // break; //} } } //} } } }