From 5f8ca112a9b11169c9f5665be568bb0af15dbd71 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 27 Nov 2019 16:08:46 -0800 Subject: [PATCH] Scale area to [0,1] out of total image size in pixels --- Main/chameleon-vision.iml | 13 ++++++++++++- .../vision/pipeline/CVPipeline2d.java | 3 ++- .../vision/pipeline/pipes/Collect2dTargetsPipe.java | 9 ++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Main/chameleon-vision.iml b/Main/chameleon-vision.iml index a0d6af26a..cafdd9cc1 100644 --- a/Main/chameleon-vision.iml +++ b/Main/chameleon-vision.iml @@ -13,6 +13,18 @@ + + + + + + + + + + + + @@ -38,7 +50,6 @@ - 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 74cdd6a05..d257aaa3a 100644 --- a/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline2d.java +++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline2d.java @@ -94,6 +94,7 @@ public class CVPipeline2d extends CVPipeline, Long> sortContoursResult = sortContoursPipe.run(groupContoursResult.getLeft()); totalPipelineTimeNanos += sortContoursResult.getRight(); - Pair, Long> collect2dTargetsResult = collect2dTargetsPipe.run(sortContoursResult.getLeft()); + Pair, Long> collect2dTargetsResult = collect2dTargetsPipe.run(Pair.of(sortContoursResult.getLeft(), camProps)); totalPipelineTimeNanos += collect2dTargetsResult.getRight(); // takes pair of (Mat of original camera image (8UC3), Mat of HSV thresholded image(8UC1)) 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 d1c0fb960..572e9e6e2 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 @@ -5,12 +5,13 @@ import com.chameleonvision.vision.pipeline.CVPipeline2d; import com.chameleonvision.vision.enums.CalibrationMode; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.math3.util.FastMath; +import org.opencv.core.Mat; import org.opencv.core.RotatedRect; import java.util.ArrayList; import java.util.List; -public class Collect2dTargetsPipe implements Pipe, List> { +public class Collect2dTargetsPipe implements Pipe, CaptureStaticProperties>, List> { private CalibrationMode calibrationMode; private CaptureStaticProperties camProps; @@ -38,10 +39,12 @@ public class Collect2dTargetsPipe implements Pipe, List, Long> run(List input) { + public Pair, Long> run(Pair, CaptureStaticProperties> inputPair) { long processStartNanos = System.nanoTime(); targets.clear(); + var input = inputPair.getLeft(); + var imageArea = inputPair.getRight().imageArea; if (input.size() > 0) { for (RotatedRect r : input) { @@ -64,7 +67,7 @@ public class Collect2dTargetsPipe implements Pipe, List