From 9756420ce3cbcc851c1d91a2435122665b65064e Mon Sep 17 00:00:00 2001 From: Banks Troutman Date: Mon, 25 May 2020 20:29:18 -0400 Subject: [PATCH] Update TODOs, minor cleanups, add ledMode to pipelinesettings --- .../com/chameleonvision/common/scripting/ScriptManager.java | 2 +- .../main/java/com/chameleonvision/common/util/Platform.java | 3 +-- .../com/chameleonvision/common/util/file/FileUtils.java | 1 - .../com/chameleonvision/common/vision/opencv/CVShape.java | 4 +--- .../com/chameleonvision/common/vision/opencv/Contour.java | 2 +- .../chameleonvision/common/vision/opencv/ContourShape.java | 3 +-- .../common/vision/pipe/impl/Draw2dCrosshairPipe.java | 2 +- .../common/vision/pipe/impl/Draw3dTargetsPipe.java | 2 -- .../common/vision/pipe/impl/GroupContoursPipe.java | 3 --- .../common/vision/pipeline/AdvancedPipelineSettings.java | 6 ++++++ .../common/vision/pipeline/CVPipelineResult.java | 1 - .../common/vision/pipeline/CVPipelineSettings.java | 1 + .../common/vision/pipeline/ReflectivePipeline.java | 5 ++--- .../common/vision/processes/VisionModule.java | 2 +- .../chameleonvision/common/vision/target/TrackedTarget.java | 1 - .../common/vision/frame/provider/FileFrameProviderTest.java | 2 -- 16 files changed, 16 insertions(+), 24 deletions(-) diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/scripting/ScriptManager.java b/chameleon-server/src/main/java/com/chameleonvision/common/scripting/ScriptManager.java index 5f83f6ec1..9860d0dfb 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/scripting/ScriptManager.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/scripting/ScriptManager.java @@ -76,7 +76,7 @@ public class ScriptManager { // protected static final Path scriptConfigPath = // Paths.get(ConfigManager.SettingsPath.toString(), "scripts.json"); - static final Path scriptConfigPath = Paths.get(""); // TODO: FIX + static final Path scriptConfigPath = Paths.get(""); // TODO: Waiting on config private ScriptConfigManager() {} diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/util/Platform.java b/chameleon-server/src/main/java/com/chameleonvision/common/util/Platform.java index eda6611c9..80dfad2c5 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/util/Platform.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/util/Platform.java @@ -61,9 +61,8 @@ public enum Platform { e.printStackTrace(); } - // TODO: better way to do this? while (!shell.isOutputCompleted()) { - // ignored + // TODO: add timeout } if (shell.getExitCode() == 0) { diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/util/file/FileUtils.java b/chameleon-server/src/main/java/com/chameleonvision/common/util/file/FileUtils.java index 25629947b..f2e12b4b9 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/util/file/FileUtils.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/util/file/FileUtils.java @@ -49,7 +49,6 @@ public class FileUtils { e.printStackTrace(); } } else { - // TODO file perms on Windows logger.info("Cannot set directory permissions on Windows!"); } } diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/CVShape.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/CVShape.java index 1e01dc0a8..21019c84c 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/CVShape.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/CVShape.java @@ -50,9 +50,7 @@ public class CVShape { break; case Triangle: break; - case Square: - break; - case Rectangle: + case Quadrilateral: break; } return true; diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/Contour.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/Contour.java index f4cafa949..21ed0fabe 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/Contour.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/Contour.java @@ -144,7 +144,7 @@ public class Contour implements Releasable { return isIntersecting; } - // TODO: refactor to do "infinite" contours + // TODO: refactor to do "infinite" contours ??????? public static Contour groupContoursByIntersection( Contour firstContour, Contour secondContour, ContourIntersectionDirection intersection) { if (areIntersecting(firstContour, secondContour, intersection)) { diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/ContourShape.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/ContourShape.java index dc036c427..419d4c1cd 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/ContourShape.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/opencv/ContourShape.java @@ -4,8 +4,7 @@ public enum ContourShape { Custom(-1), Circle(0), Triangle(3), - Square(4), - Rectangle(4); + Quadrilateral(4); public final int sides; diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw2dCrosshairPipe.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw2dCrosshairPipe.java index 05ce9cadf..69329796b 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw2dCrosshairPipe.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw2dCrosshairPipe.java @@ -32,7 +32,7 @@ public class Draw2dCrosshairPipe } break; case Dual: - // TODO + // TODO: draw crosshair based on dual calibration break; } diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw3dTargetsPipe.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw3dTargetsPipe.java index 194d66dff..745f5649a 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw3dTargetsPipe.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/Draw3dTargetsPipe.java @@ -18,8 +18,6 @@ import org.opencv.imgproc.Imgproc; public class Draw3dTargetsPipe extends CVPipe>, Mat, Draw3dTargetsPipe.Draw3dContoursParams> { - private static MatOfPoint tempMat = new MatOfPoint(); - @Override protected Mat process(Pair> in) { for (var target : in.getRight()) { diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/GroupContoursPipe.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/GroupContoursPipe.java index 0962d9f5d..10cb56377 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/GroupContoursPipe.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipe/impl/GroupContoursPipe.java @@ -30,9 +30,6 @@ public class GroupContoursPipe int groupingCount = params.getGroup().count; if (input.size() > groupingCount) { - // todo: is it OK to mutate the input list? - // or should we clone it like before? - // what is the perf hit on cloning? input.sort(Contour.SortByMomentsX); // also why reverse? shouldn't the sort comparator just get reversed? Collections.reverse(input); diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/AdvancedPipelineSettings.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/AdvancedPipelineSettings.java index 36db264c8..034adf34f 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/AdvancedPipelineSettings.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/AdvancedPipelineSettings.java @@ -6,8 +6,14 @@ import com.chameleonvision.common.vision.opencv.ContourSortMode; import com.chameleonvision.common.vision.target.RobotOffsetPointMode; import com.chameleonvision.common.vision.target.TargetOffsetPointEdge; import com.chameleonvision.common.vision.target.TargetOrientation; +import com.fasterxml.jackson.annotation.JsonIgnore; public class AdvancedPipelineSettings extends CVPipelineSettings { + + public AdvancedPipelineSettings() { + ledMode = true; + } + public IntegerCouple hsvHue = new IntegerCouple(50, 180); public IntegerCouple hsvSaturation = new IntegerCouple(50, 255); public IntegerCouple hsvValue = new IntegerCouple(50, 255); diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineResult.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineResult.java index 22145847b..a903b73e4 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineResult.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineResult.java @@ -15,7 +15,6 @@ public class CVPipelineResult implements Releasable { this.processingMillis = processingMillis; this.targets = targets; - // TODO: is this the best way to go about this? this.outputFrame = Frame.copyFrom(outputFrame); } diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineSettings.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineSettings.java index eb57ac9e1..bf83fb737 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineSettings.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/CVPipelineSettings.java @@ -16,4 +16,5 @@ public class CVPipelineSettings { public int cameraVideoModeIndex = 0; public FrameDivisor inputFrameDivisor = FrameDivisor.NONE; public FrameDivisor outputFrameDivisor = FrameDivisor.NONE; + public boolean ledMode = false; } diff --git a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/ReflectivePipeline.java b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/ReflectivePipeline.java index e3e5c2e3c..421bc260a 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/ReflectivePipeline.java +++ b/chameleon-server/src/main/java/com/chameleonvision/common/vision/pipeline/ReflectivePipeline.java @@ -63,8 +63,8 @@ public class ReflectivePipeline extends CVPipeline m_subContours; // can be empty diff --git a/chameleon-server/src/test/java/com/chameleonvision/common/vision/frame/provider/FileFrameProviderTest.java b/chameleon-server/src/test/java/com/chameleonvision/common/vision/frame/provider/FileFrameProviderTest.java index 6b8787505..7e41458f9 100644 --- a/chameleon-server/src/test/java/com/chameleonvision/common/vision/frame/provider/FileFrameProviderTest.java +++ b/chameleon-server/src/test/java/com/chameleonvision/common/vision/frame/provider/FileFrameProviderTest.java @@ -45,7 +45,6 @@ public class FileFrameProviderTest { assertEquals(320, goodFrameCols); assertEquals(240, goodFrameRows); - // TODO: find a way to skip this if a flag isn't set TestUtils.showImage(goodFrame.image.getMat(), "2019"); var badFilePath = Paths.get("bad.jpg"); // this file does not exist @@ -78,7 +77,6 @@ public class FileFrameProviderTest { assertEquals(640, goodFrameCols); assertEquals(480, goodFrameRows); - // TODO: find a way to skip this if a flag isn't set TestUtils.showImage(goodFrame.image.getMat(), "2020"); var badFilePath = Paths.get("bad.jpg"); // this file does not exist