|
@@ -143,11 +143,32 @@ namespace OTSModelSharp
|
|
|
|
|
|
CSampleParam pMsrParam = m_Sample.GetMsrParams();
|
|
|
COTSImageProcParam pImgProcessParam = pMsrParam.GetImageProcessParam();
|
|
|
+ var pXRayParam = pMsrParam.GetXRayParam();
|
|
|
curFldData.InitParticles(pImgProcessParam, dPixelSize);
|
|
|
if (curFldData.NoAnalysisParticle())
|
|
|
{
|
|
|
log.Warn("There's no analysis particles!");
|
|
|
}
|
|
|
+
|
|
|
+ var listXray = curFldData.GetListAnalysisParticles().OrderByDescending(x => x.GetActualArea()).ToList();
|
|
|
+ var listXray1 = new List<COTSParticleClr>();
|
|
|
+
|
|
|
+ if (listXray.Count > pXRayParam.GetXrayLimit())
|
|
|
+ {
|
|
|
+ for (var i = 0; i < pXRayParam.GetXrayLimit(); i++)
|
|
|
+ {
|
|
|
+
|
|
|
+ listXray1.Add(listXray[i]);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ listXray1 = listXray;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//2) according to the quantify threshold size value saperate the analysis particles into two group :the bigparticles and the smallparticles.
|
|
|
|
|
|
double quantifyThreshold = m_Sample.GetMsrParams().GetXRayParam().GetFeatureModeMinSize();
|
|
@@ -156,7 +177,7 @@ namespace OTSModelSharp
|
|
|
var bigparts = fld.ListBigParticles;
|
|
|
|
|
|
|
|
|
- foreach (var part in curFldData.GetListAnalysisParticles())
|
|
|
+ foreach (var part in listXray1)
|
|
|
{
|
|
|
double equalCircleDiameter = Math.Sqrt(part.GetActualArea() / 3.14159) * 2f;
|
|
|
if (equalCircleDiameter < quantifyThreshold)
|