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;
//}
}
}
//}
}
}
}