From a363e3568b6daf20a8e474af6e2f3d07fba01656 Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Sat, 30 Nov 2019 22:38:05 -0500 Subject: [PATCH] Replace StringBuilder with String in CVPipeline2d --- .gitignore | 1 + Main/chameleon-vision.iml | 28 +++++++-------- .../vision/pipeline/CVPipeline2d.java | 34 +++++++++---------- .../vision/pipeline/DriverVisionPipeline.java | 1 + .../pipeline/pipes/Draw2dContoursPipe.java | 12 +++---- 5 files changed, 39 insertions(+), 37 deletions(-) diff --git a/.gitignore b/.gitignore index d7c7d8888..881a2ab5b 100644 --- a/.gitignore +++ b/.gitignore @@ -116,3 +116,4 @@ Main/.classpath Main/.project *.prefs +*.jfr diff --git a/Main/chameleon-vision.iml b/Main/chameleon-vision.iml index 47e845787..a3c362a46 100644 --- a/Main/chameleon-vision.iml +++ b/Main/chameleon-vision.iml @@ -48,20 +48,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline2d.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline2d.java index 7869caee5..520d4837d 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline2d.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline2d.java @@ -30,7 +30,7 @@ public class CVPipeline2d extends CVPipeline draw2dContoursResult = draw2dContoursPipe.run(Pair.of(outputMatResult.getLeft(), sortContoursResult.getLeft())); totalPipelineTimeNanos += draw2dContoursResult.getRight(); - pipelineTimeStringBuilder.append(String.format("PipeInit: %.2fms, ", pipeInitTimeNanos / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("RotateFlip: %.2fms, ", rotateFlipResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("Blur: %.2fms, ", blurResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("ErodeDilate: %.2fms, ", erodeDilateResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("HSV: %.2fms, ", hsvResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("FindContours: %.2fms, ", findContoursResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("FilterContours: %.2fms, ", filterContoursResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("SpeckleReject: %.2fms, ", speckleRejectResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("GroupContours: %.2fms, ", groupContoursResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("SortContours: %.2fms, ", sortContoursResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("Collect2dTargets: %.2fms, ", collect2dTargetsResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("OutputMat: %.2fms, ", outputMatResult.getRight() / 1000000.0)); - pipelineTimeStringBuilder.append(String.format("Draw2dContours: %.2fms, ", draw2dContoursResult.getRight() / 1000000.0)); - if (Main.testMode) { - System.out.println(pipelineTimeStringBuilder.toString()); + pipelineTimeString += String.format("PipeInit: %.2fms, ", pipeInitTimeNanos / 1000000.0); + pipelineTimeString += String.format("RotateFlip: %.2fms, ", rotateFlipResult.getRight() / 1000000.0); + pipelineTimeString += String.format("Blur: %.2fms, ", blurResult.getRight() / 1000000.0); + pipelineTimeString += String.format("ErodeDilate: %.2fms, ", erodeDilateResult.getRight() / 1000000.0); + pipelineTimeString += String.format("HSV: %.2fms, ", hsvResult.getRight() / 1000000.0); + pipelineTimeString += String.format("FindContours: %.2fms, ", findContoursResult.getRight() / 1000000.0); + pipelineTimeString += String.format("FilterContours: %.2fms, ", filterContoursResult.getRight() / 1000000.0); + pipelineTimeString += String.format("SpeckleReject: %.2fms, ", speckleRejectResult.getRight() / 1000000.0); + pipelineTimeString += String.format("GroupContours: %.2fms, ", groupContoursResult.getRight() / 1000000.0); + pipelineTimeString += String.format("SortContours: %.2fms, ", sortContoursResult.getRight() / 1000000.0); + pipelineTimeString += String.format("Collect2dTargets: %.2fms, ", collect2dTargetsResult.getRight() / 1000000.0); + pipelineTimeString += String.format("OutputMat: %.2fms, ", outputMatResult.getRight() / 1000000.0); + pipelineTimeString += String.format("Draw2dContours: %.2fms, ", draw2dContoursResult.getRight() / 1000000.0); + + System.out.println(pipelineTimeString); double totalPipelineTimeMillis = totalPipelineTimeNanos / 1000000.0; double totalPipelineTimeFPS = 1.0 / (totalPipelineTimeMillis / 1000.0); double truePipelineTimeMillis = (System.nanoTime() - pipelineStartTimeNanos) / 1000000.0; diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java index 41c307de5..2eafad400 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/DriverVisionPipeline.java @@ -18,6 +18,7 @@ public class DriverVisionPipeline extends CVPipeline>, Ma private Mat processBuffer = new Mat(); private Mat outputMat = new Mat(); + private Point[] vertices = new Point[4]; + private List drawnContours = new ArrayList<>(); + @SuppressWarnings("FieldCanBeLocal") + private Point xMax = new Point(), xMin = new Point(), yMax = new Point(), yMin = new Point(); + + public Draw2dContoursPipe(Draw2dContoursSettings settings, CaptureStaticProperties camProps) { this.settings = settings; this.camProps = camProps; @@ -29,9 +35,6 @@ public class Draw2dContoursPipe implements Pipe>, Ma camProps = captureProps; } - private Point[] vertices = new Point[4]; - private List drawnContours = new ArrayList<>(); - @Override public Pair run(Pair> input) { long processStartNanos = System.nanoTime(); @@ -88,9 +91,6 @@ public class Draw2dContoursPipe implements Pipe>, Ma return Pair.of(outputMat, processTime); } - @SuppressWarnings("FieldCanBeLocal") - private Point xMax = new Point(), xMin = new Point(), yMax = new Point(), yMin = new Point(); - public static class Draw2dContoursSettings { public boolean showCentroid = false; public boolean showCrosshair = false;