|
@@ -4,14 +4,14 @@ namespace OTSIMGPROC
|
|
|
{
|
|
|
|
|
|
|
|
|
- BOOL MyGreyPeak::MergeGreyPeaks(MyGreyPeak* firstRng)
|
|
|
+ BOOL MyGreyPeak::MergeGreyPeaks(MyGreyPeak* firstRng ,MyGreyPeak*& resultFirstRng)
|
|
|
{
|
|
|
|
|
|
auto curRange = firstRng;
|
|
|
|
|
|
while (curRange != NULL)
|
|
|
{
|
|
|
- int pt = curRange->GetPeakType();
|
|
|
+ GrayPeakType pt = curRange->GetPeakType();
|
|
|
|
|
|
if (pt == GrayPeakType::normalPeak)//normal peak
|
|
|
{
|
|
@@ -34,6 +34,7 @@ namespace OTSIMGPROC
|
|
|
{
|
|
|
preRng->MergePeak(curRange);
|
|
|
curRange = preRng;
|
|
|
+ //firstRng = preRng;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -58,6 +59,7 @@ namespace OTSIMGPROC
|
|
|
nextRng->MergePeak(curRange);
|
|
|
|
|
|
curRange = nextRng;
|
|
|
+ //firstRng = nextRng;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -79,12 +81,14 @@ namespace OTSIMGPROC
|
|
|
{
|
|
|
preRng->MergePeak(curRange);
|
|
|
curRange = preRng;
|
|
|
+ //firstRng = preRng;
|
|
|
continue;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
nextRng->MergePeak(curRange);
|
|
|
curRange = nextRng;
|
|
|
+ //firstRng = nextRng;
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
@@ -92,12 +96,14 @@ namespace OTSIMGPROC
|
|
|
{
|
|
|
preRng->MergePeak(curRange);
|
|
|
curRange = preRng;
|
|
|
+ //firstRng = preRng;
|
|
|
continue;
|
|
|
}
|
|
|
else if (nextPeak > curPeak && prePeak < curPeak)
|
|
|
{
|
|
|
nextRng->MergePeak(curRange);
|
|
|
curRange = nextRng;
|
|
|
+ //firstRng = nextRng;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -107,6 +113,7 @@ namespace OTSIMGPROC
|
|
|
|
|
|
preRng->MergePeak(curRange);
|
|
|
curRange = preRng;
|
|
|
+ //firstRng = preRng;
|
|
|
continue;
|
|
|
|
|
|
|
|
@@ -114,7 +121,7 @@ namespace OTSIMGPROC
|
|
|
else if (preRng == NULL && nextRng != NULL)
|
|
|
{
|
|
|
nextRng->MergePeak(curRange);
|
|
|
- firstRng = nextRng;
|
|
|
+ //firstRng = nextRng;
|
|
|
curRange = nextRng;
|
|
|
continue;
|
|
|
}
|
|
@@ -122,10 +129,19 @@ namespace OTSIMGPROC
|
|
|
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ if (curRange->nextRng == NULL)
|
|
|
+ {
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
curRange = curRange->nextRng;
|
|
|
|
|
|
}
|
|
|
+ while (curRange != NULL && curRange->preRng != NULL)
|
|
|
+ {
|
|
|
+ resultFirstRng = curRange->preRng;
|
|
|
+ curRange = curRange->preRng;
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|