|
@@ -1,5 +1,4 @@
|
|
|
-//using OTSMeasureApp._0_OTSModel.Measure.ParamData;
|
|
|
-using OTSMeasureApp._0_OTSModel.OTSDataType;
|
|
|
+using OTSMeasureApp._0_OTSModel.OTSDataType;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
@@ -23,10 +22,43 @@ namespace OTSDataType
|
|
|
private CIntRange m_oParticleGray = new CIntRange();
|
|
|
private OTS_BGREMOVE_TYPE m_BGRemoveType;
|
|
|
private OTS_AUTOBGREMOVE_TYPE m_autoBGRemoveType;
|
|
|
-
|
|
|
int m_OverlapParam;
|
|
|
|
|
|
private CSpecialGrayRangeParam m_specialGreyRangeParam;
|
|
|
+ private string particleSelectCondition = "";
|
|
|
+
|
|
|
+ public string GetParticleSelectCondition()
|
|
|
+ {
|
|
|
+ return particleSelectCondition;
|
|
|
+ }
|
|
|
+ public Dictionary<string, CDoubleRange> GetParticleSelConditionDic()
|
|
|
+ {
|
|
|
+ Dictionary<string, CDoubleRange> dic = new Dictionary<string, CDoubleRange>();
|
|
|
+ if (particleSelectCondition != "" && particleSelectCondition!=null)
|
|
|
+ {
|
|
|
+ var conditionstrs = particleSelectCondition.Split(',');
|
|
|
+
|
|
|
+ foreach (var singlecondition in conditionstrs)
|
|
|
+ {
|
|
|
+ string conditionName = singlecondition.Split(':')[0];
|
|
|
+ string condition = singlecondition.Split(':')[1];
|
|
|
+ CDoubleRange rng = new CDoubleRange();
|
|
|
+ rng.SetStart(Convert.ToDouble(condition.Split('-')[0]));
|
|
|
+ rng.SetEnd(Convert.ToDouble(condition.Split('-')[1]));
|
|
|
+ dic.Add(conditionName, rng);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ return dic;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SetParticleSelectCondition(string value)
|
|
|
+ {
|
|
|
+ particleSelectCondition = value;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public CSpecialGrayRangeParam GetSpecialGreyRangeParam()
|
|
|
{
|
|
@@ -60,8 +92,7 @@ namespace OTSDataType
|
|
|
m_oBGGray = new CIntRange(DEFUALT_BG_GRAY_LEVEL_MIN, DEFUALT_BG_GRAY_LEVEL_MAX);
|
|
|
m_oParticleGray = new CIntRange(DEFUALT_PARTICLE_GRAY_LEVEL_MIN, DEFUALT_PARTICLE_GRAY_LEVEL_MAX);
|
|
|
m_BGRemoveType = OTS_BGREMOVE_TYPE.MANUAL;// OTS_BGREMOVE_TYPE.AUTO;
|
|
|
- m_autoBGRemoveType = OTS_AUTOBGREMOVE_TYPE.MIDDLE;
|
|
|
- //m_errodDilateParam = 3;
|
|
|
+ m_autoBGRemoveType = OTS_AUTOBGREMOVE_TYPE.MIDDLE;
|
|
|
m_OverlapParam = 20;
|
|
|
}
|
|
|
public CDoubleRange GetIncAreaRange() { return m_oIncArea; }
|
|
@@ -81,9 +112,7 @@ namespace OTSDataType
|
|
|
|
|
|
public void SetAutoBGRemoveType(OTS_AUTOBGREMOVE_TYPE a_oVal) { m_autoBGRemoveType = a_oVal; }
|
|
|
|
|
|
- //public int GetErrodDilateParam() { return m_errodDilateParam; }
|
|
|
-
|
|
|
- //public void SetErrodDilateParam(int a_oVal) { m_errodDilateParam = a_oVal; }
|
|
|
+
|
|
|
|
|
|
public int GetOverlapParam() { return m_OverlapParam; }
|
|
|
|
|
@@ -103,7 +132,7 @@ namespace OTSDataType
|
|
|
m_oParticleGray.SetEnd(a_oSource.m_oParticleGray.GetEnd());
|
|
|
m_BGRemoveType = a_oSource.m_BGRemoveType;
|
|
|
m_autoBGRemoveType = a_oSource.m_autoBGRemoveType;
|
|
|
- //m_errodDilateParam = a_oSource.m_errodDilateParam;
|
|
|
+ SetParticleSelectCondition(a_oSource.GetParticleSelectCondition());
|
|
|
m_OverlapParam = a_oSource.m_OverlapParam;
|
|
|
|
|
|
|
|
@@ -115,7 +144,7 @@ namespace OTSDataType
|
|
|
return m_oIncArea == a_oSource.m_oIncArea &&
|
|
|
m_oBGGray == a_oSource.m_oBGGray &&
|
|
|
m_oParticleGray == a_oSource.m_oParticleGray &&
|
|
|
- //m_errodDilateParam == a_oSource.m_errodDilateParam&&
|
|
|
+
|
|
|
m_OverlapParam == a_oSource.m_OverlapParam;
|
|
|
|
|
|
}
|
|
@@ -132,9 +161,6 @@ namespace OTSDataType
|
|
|
|
|
|
slo.Register("ParticleGray", m_oParticleGray);
|
|
|
|
|
|
- xInt xnCorrosionExpansionCoefficient = new xInt();
|
|
|
- slo.Register("ErrodDilateParam", xnCorrosionExpansionCoefficient);
|
|
|
-
|
|
|
xInt xnOverlapParam = new xInt();
|
|
|
slo.Register("OverlapParam", xnOverlapParam);
|
|
|
|
|
@@ -144,13 +170,17 @@ namespace OTSDataType
|
|
|
slo.Register("BGRemoveType", xnBGRemoveType);
|
|
|
slo.Register("AutoBGRemoveType", xnautoBGRemoveType);
|
|
|
|
|
|
+ xString xpartselcondition = new xString();
|
|
|
+ slo.Register("ParticleSelectionCondition", xpartselcondition);
|
|
|
+
|
|
|
if (isStoring)
|
|
|
{
|
|
|
|
|
|
xnBGRemoveType.AssignValue((int)m_BGRemoveType+":"+m_BGRemoveType.ToString());
|
|
|
xnautoBGRemoveType.AssignValue((int)m_autoBGRemoveType+":"+m_autoBGRemoveType.ToString());
|
|
|
- //xnCorrosionExpansionCoefficient.AssignValue(m_errodDilateParam);
|
|
|
+
|
|
|
xnOverlapParam.AssignValue(m_OverlapParam);
|
|
|
+ xpartselcondition.AssignValue(GetParticleSelectCondition());
|
|
|
slo.Serialize(true, classDoc, rootNode);
|
|
|
}
|
|
|
else
|
|
@@ -159,8 +189,9 @@ namespace OTSDataType
|
|
|
//自动去背景设置
|
|
|
m_BGRemoveType = (OTS_BGREMOVE_TYPE)Convert.ToInt32( xnBGRemoveType.value().Split(':')[0]);
|
|
|
m_autoBGRemoveType = (OTS_AUTOBGREMOVE_TYPE)Convert.ToInt32( xnautoBGRemoveType.value().Split(':')[0]);
|
|
|
- //m_errodDilateParam = Convert.ToInt32(xnCorrosionExpansionCoefficient.value());
|
|
|
+
|
|
|
m_OverlapParam = Convert.ToInt32(xnOverlapParam.value());
|
|
|
+ SetParticleSelectCondition(xpartselcondition.value());
|
|
|
}
|
|
|
}
|
|
|
}
|