diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Collect2dTargetsPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Collect2dTargetsPipe.java index c035e138e..51747cfdd 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Collect2dTargetsPipe.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Collect2dTargetsPipe.java @@ -41,6 +41,8 @@ public class Collect2dTargetsPipe implements Pipe, List, Long> run(List input) { long processStartNanos = System.nanoTime(); + targets.clear(); + input.forEach(r -> { CVPipeline2d.Target2d t = new CVPipeline2d.Target2d(); t.rawPoint = r; diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FilterContoursPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FilterContoursPipe.java index b77b04016..97acea6aa 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FilterContoursPipe.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FilterContoursPipe.java @@ -38,6 +38,8 @@ public class FilterContoursPipe implements Pipe, List, Long> run(List input) { long processStartNanos = System.nanoTime(); + filteredContours.clear(); + for (MatOfPoint Contour : input) { try { double contourArea = Imgproc.contourArea(Contour); diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FindContoursPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FindContoursPipe.java index 5a7f77adf..bf57d57d1 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FindContoursPipe.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/FindContoursPipe.java @@ -18,6 +18,8 @@ public class FindContoursPipe implements Pipe> { public Pair, Long> run(Mat input) { long processStartNanos = System.nanoTime(); + foundContours.clear(); + Imgproc.findContours(input, foundContours, new Mat(), Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_TC89_L1); long processTime = System.nanoTime() - processStartNanos; diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/GroupContoursPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/GroupContoursPipe.java index 89bc37cc3..8ced26acf 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/GroupContoursPipe.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/GroupContoursPipe.java @@ -39,6 +39,8 @@ public class GroupContoursPipe implements Pipe, List, Long> run(List input) { long processStartNanos = System.nanoTime(); + groupedContours.clear(); + List sorted = new ArrayList<>(input); sorted.sort(sortByMomentsX); diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java index 457a7ae68..a6e28f1c7 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java @@ -43,27 +43,30 @@ public class SortContoursPipe implements Pipe, List, Long> run(List input) { long processStartNanos = System.nanoTime(); + sortedContours.clear(); + sortedContours.addAll(input); + switch (sort) { case Largest: - input.sort(SortByLargestComparator); + sortedContours.sort(SortByLargestComparator); break; case Smallest: - input.sort(SortBySmallestComparator); + sortedContours.sort(SortBySmallestComparator); break; case Highest: - input.sort(SortByHighestComparator); + sortedContours.sort(SortByHighestComparator); break; case Lowest: - input.sort(SortByLowestComparator); + sortedContours.sort(SortByLowestComparator); break; case Leftmost: - input.sort(SortByLeftmostComparator); + sortedContours.sort(SortByLeftmostComparator); break; case Rightmost: - input.sort(SortByRightmostComparator); + sortedContours.sort(SortByRightmostComparator); break; case Centermost: - input.sort(SortByCentermostComparator); + sortedContours.sort(SortByCentermostComparator); break; default: break; diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SpeckleRejectPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SpeckleRejectPipe.java index 5fe11e479..7edebf7f7 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SpeckleRejectPipe.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/SpeckleRejectPipe.java @@ -25,6 +25,8 @@ public class SpeckleRejectPipe implements Pipe, List, Long> run(List input) { long processStartNanos = System.nanoTime(); + despeckledContours.clear(); + double averageArea = 0.0; for (MatOfPoint c : input) {