diff --git a/Main/chameleon-vision.iml b/Main/chameleon-vision.iml
index 7ef49e681..5cbae1d91 100644
--- a/Main/chameleon-vision.iml
+++ b/Main/chameleon-vision.iml
@@ -12,24 +12,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Main/src/main/java/com/chameleonvision/Main.java b/Main/src/main/java/com/chameleonvision/Main.java
index ff32ba8d0..9bc4d4da7 100644
--- a/Main/src/main/java/com/chameleonvision/Main.java
+++ b/Main/src/main/java/com/chameleonvision/Main.java
@@ -24,7 +24,7 @@ public class Main {
private static final String IGNORE_ROOT_KEY = "--ignore-root"; // no args for this setting
private static final String TEST_MODE_KEY = "--cv-development";
- private static final int DEFAULT_PORT = 5800;
+ private static final int DEFAULT_PORT = 8888;
private static boolean ntServerMode = false;
private static boolean manageNetwork = true;
diff --git a/Main/src/main/java/com/chameleonvision/config/CameraConfig.java b/Main/src/main/java/com/chameleonvision/config/CameraConfig.java
index e4162bec3..b416eb65d 100644
--- a/Main/src/main/java/com/chameleonvision/config/CameraConfig.java
+++ b/Main/src/main/java/com/chameleonvision/config/CameraConfig.java
@@ -1,6 +1,6 @@
package com.chameleonvision.config;
-import com.chameleonvision.vision.camera.USBCameraProcess;
+import com.chameleonvision.vision.camera.USBCameraCapture;
import com.chameleonvision.vision.camera.USBCameraProperties;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -30,7 +30,7 @@ public class CameraConfig {
this.nickname = name;
}
- public static CameraConfig fromUSBCameraProcess(USBCameraProcess process) {
+ public static CameraConfig fromUSBCameraProcess(USBCameraCapture process) {
USBCameraProperties camProps = process.getProperties();
return new CameraConfig(camProps.FOV, camProps.name, camProps.path, camProps.getNickname());
}
diff --git a/Main/src/main/java/com/chameleonvision/config/ConfigManager.java b/Main/src/main/java/com/chameleonvision/config/ConfigManager.java
index dc5b30660..68212fc78 100644
--- a/Main/src/main/java/com/chameleonvision/config/ConfigManager.java
+++ b/Main/src/main/java/com/chameleonvision/config/ConfigManager.java
@@ -4,6 +4,7 @@ import com.chameleonvision.util.ProgramDirectoryUtilities;
import com.chameleonvision.util.FileHelper;
import com.chameleonvision.vision.pipeline.CVPipelineSettings;
+import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -34,7 +35,8 @@ public class ConfigManager {
}
private static void checkSettingsFile() {
- if (!settingsFileExists()) {
+ boolean settingsFileEmpty = settingsFileExists() && new File(settingsFilePath.toString()).length() == 0;
+ if (settingsFileEmpty || !settingsFileExists()) {
try {
FileHelper.Serializer(settingsFilePath, settings);
} catch (IOException e) {
diff --git a/Main/src/main/java/com/chameleonvision/vision/VisionManager.java b/Main/src/main/java/com/chameleonvision/vision/VisionManager.java
index b74708265..b0b148796 100644
--- a/Main/src/main/java/com/chameleonvision/vision/VisionManager.java
+++ b/Main/src/main/java/com/chameleonvision/vision/VisionManager.java
@@ -4,8 +4,8 @@ import com.chameleonvision.config.CameraConfig;
import com.chameleonvision.config.ConfigManager;
import com.chameleonvision.util.Helpers;
import com.chameleonvision.util.Platform;
-import com.chameleonvision.vision.camera.CameraProcess;
-import com.chameleonvision.vision.camera.USBCameraProcess;
+import com.chameleonvision.vision.camera.CameraCapture;
+import com.chameleonvision.vision.camera.USBCameraCapture;
import com.chameleonvision.vision.pipeline.CVPipelineSettings;
import edu.wpi.cscore.UsbCamera;
import edu.wpi.cscore.UsbCameraInfo;
@@ -86,7 +86,7 @@ public class VisionManager {
public static boolean initializeProcesses() {
for (int i = 0; i < loadedCameraConfigs.size(); i++) {
CameraConfig config = loadedCameraConfigs.get(i);
- CameraProcess camera = new USBCameraProcess(config);
+ CameraCapture camera = new USBCameraCapture(config);
VisionProcess process = new VisionProcess(camera, config.name);
visionProcesses.add(new VisionProcessManageable(i, config.name, process));
}
@@ -136,7 +136,7 @@ public class VisionManager {
String cameraName = process.getCamera().getProperties().name;
List pipelines = process.getPipelines().stream().map(cvPipeline -> cvPipeline.settings).collect(Collectors.toList());
CVPipelineSettings driverMode = process.getDriverModeSettings();
- CameraConfig config = CameraConfig.fromUSBCameraProcess((USBCameraProcess) process.getCamera());
+ CameraConfig config = CameraConfig.fromUSBCameraProcess((USBCameraCapture) process.getCamera());
try {
ConfigManager.saveCameraPipelines(cameraName, pipelines);
ConfigManager.saveCameraDriverMode(cameraName, driverMode);
diff --git a/Main/src/main/java/com/chameleonvision/vision/VisionProcess.java b/Main/src/main/java/com/chameleonvision/vision/VisionProcess.java
index 3cb5c8ad1..30589dc71 100644
--- a/Main/src/main/java/com/chameleonvision/vision/VisionProcess.java
+++ b/Main/src/main/java/com/chameleonvision/vision/VisionProcess.java
@@ -2,7 +2,7 @@ package com.chameleonvision.vision;
import com.chameleonvision.config.ConfigManager;
import com.chameleonvision.util.LoopingRunnable;
-import com.chameleonvision.vision.camera.CameraProcess;
+import com.chameleonvision.vision.camera.CameraCapture;
import com.chameleonvision.vision.camera.CameraStreamer;
import com.chameleonvision.vision.pipeline.*;
import com.chameleonvision.web.ServerHandler;
@@ -19,7 +19,7 @@ import java.util.List;
public class VisionProcess {
- private final CameraProcess cameraProcess;
+ private final CameraCapture cameraCapture;
private final List pipelines = new ArrayList<>();
private final CameraFrameRunnable cameraRunnable;
private final CameraStreamerRunnable streamRunnable;
@@ -51,29 +51,29 @@ public class VisionProcess {
private NetworkTableEntry ntValidEntry;
private Gson gson = new GsonBuilder().setPrettyPrinting().create();
- VisionProcess(CameraProcess cameraProcess, String name) {
- this.cameraProcess = cameraProcess;
+ VisionProcess(CameraCapture cameraCapture, String name) {
+ this.cameraCapture = cameraCapture;
pipelines.add(new CVPipeline2d("New Pipeline"));
setPipeline(0, false);
// Thread to grab frames from the camera
// TODO: (HIGH) fix video modes!!!
- this.cameraRunnable = new CameraFrameRunnable(cameraProcess.getProperties().videoModes.get(0).fps);
+ this.cameraRunnable = new CameraFrameRunnable(cameraCapture.getProperties().videoModes.get(0).fps);
lastPipelineResult = new DriverVisionPipeline.DriverPipelineResult(
null, cameraRunnable.getFrame(new Mat()), 0
);
// Thread to put frames on the dashboard
- this.cameraStreamer = new CameraStreamer(cameraProcess, name);
+ this.cameraStreamer = new CameraStreamer(cameraCapture, name);
this.streamRunnable = new CameraStreamerRunnable(30, cameraStreamer);
// Thread to process vision data
this.visionRunnable = new VisionProcessRunnable();
// network table
- defaultTable = NetworkTableInstance.getDefault().getTable("/chameleon-vision/" + cameraProcess.getProperties().name);
+ defaultTable = NetworkTableInstance.getDefault().getTable("/chameleon-vision/" + cameraCapture.getProperties().name);
}
public void start() {
@@ -156,7 +156,7 @@ public class VisionProcess {
currentPipelineIndex = pipelineIndex;
// update the configManager
- if(ConfigManager.settings.currentCamera.equals(cameraProcess.getProperties().name)) {
+ if(ConfigManager.settings.currentCamera.equals(cameraCapture.getProperties().name)) {
ConfigManager.settings.currentPipeline = pipelineIndex;
if (updateUI) {
@@ -171,11 +171,11 @@ public class VisionProcess {
private void setPipelineInternal(CVPipeline pipeline) {
currentPipeline = pipeline;
- currentPipeline.initPipeline(cameraProcess);
+ currentPipeline.initPipeline(cameraCapture);
}
private void updateUI(CVPipelineResult data) {
- if(cameraProcess.getProperties().name.equals(ConfigManager.settings.currentCamera)) {
+ if(cameraCapture.getProperties().name.equals(ConfigManager.settings.currentCamera)) {
HashMap WebSend = new HashMap<>();
HashMap point = new HashMap<>();
HashMap calculated = new HashMap<>();
@@ -235,7 +235,7 @@ public class VisionProcess {
}
public void setVideoMode(VideoMode newMode) {
- cameraProcess.setVideoMode(newMode);
+ cameraCapture.setVideoMode(newMode);
cameraRunnable.updateCameraFPS(newMode.fps);
cameraStreamer.setNewVideoMode(newMode);
}
@@ -261,8 +261,8 @@ public class VisionProcess {
pipelines.add(pipeline);
}
- public CameraProcess getCamera() {
- return cameraProcess;
+ public CameraCapture getCamera() {
+ return cameraCapture;
}
public boolean getDriverMode() {
@@ -304,10 +304,9 @@ public class VisionProcess {
@Override
public void process() {
-// System.out.println("running camera grabber process");
// Grab camera frames
- var camData = cameraProcess.getFrame();
+ var camData = cameraCapture.getFrame();
if (camData.getLeft().cols() > 0) {
// System.out.println("grabbing frame");
// synchronized (frameLock) {
diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraProcess.java b/Main/src/main/java/com/chameleonvision/vision/camera/CameraCapture.java
similarity index 67%
rename from Main/src/main/java/com/chameleonvision/vision/camera/CameraProcess.java
rename to Main/src/main/java/com/chameleonvision/vision/camera/CameraCapture.java
index ef9d4a7bb..2233eb2cc 100644
--- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraProcess.java
+++ b/Main/src/main/java/com/chameleonvision/vision/camera/CameraCapture.java
@@ -1,18 +1,11 @@
package com.chameleonvision.vision.camera;
+import com.chameleonvision.vision.image.ImageCapture;
import edu.wpi.cscore.VideoMode;
-import org.apache.commons.lang3.tuple.Pair;
-import org.opencv.core.Mat;
-public interface CameraProcess {
+public interface CameraCapture extends ImageCapture {
USBCameraProperties getProperties();
- /**
- * Get the next camera frame
- * @return a Pair of the captured image and how long it took to grab the frame (in uS)
- */
- Pair getFrame();
-
/**
* Set the exposure of the camera
* @param exposure the new exposure to set the camera to
diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java b/Main/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java
index 249e0f425..1a2e68aa6 100644
--- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java
+++ b/Main/src/main/java/com/chameleonvision/vision/camera/CameraStreamer.java
@@ -10,32 +10,32 @@ import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class CameraStreamer {
- private final CameraProcess cameraProcess;
+ private final CameraCapture cameraCapture;
private final String name;
private StreamDivisor divisor = StreamDivisor.NONE;
private CvSource cvSource;
private final Object streamBufferLock = new Object();
private Mat streamBuffer = new Mat();
- public CameraStreamer(CameraProcess cameraProcess, String name) {
- this.cameraProcess = cameraProcess;
+ public CameraStreamer(CameraCapture cameraCapture, String name) {
+ this.cameraCapture = cameraCapture;
this.name = name;
this.cvSource = CameraServer.getInstance().putVideo(name,
- cameraProcess.getProperties().staticProperties.imageWidth / divisor.value,
- cameraProcess.getProperties().staticProperties.imageHeight / divisor.value);
+ cameraCapture.getProperties().getStaticProperties().imageWidth / divisor.value,
+ cameraCapture.getProperties().getStaticProperties().imageHeight / divisor.value);
setDivisor(divisor, false);
}
public void setDivisor(StreamDivisor newDivisor, boolean updateUI) {
this.divisor = newDivisor;
- var camValues = cameraProcess.getProperties();
- var newWidth = camValues.staticProperties.imageWidth / newDivisor.value;
- var newHeight = camValues.staticProperties.imageHeight / newDivisor.value;
+ var camValues = cameraCapture.getProperties();
+ var newWidth = camValues.getStaticProperties().imageWidth / newDivisor.value;
+ var newHeight = camValues.getStaticProperties().imageHeight / newDivisor.value;
synchronized (streamBufferLock) {
this.streamBuffer = new Mat(newWidth, newHeight, CvType.CV_8UC3);
this.cvSource = CameraServer.getInstance().putVideo(this.name,
- cameraProcess.getProperties().staticProperties.imageWidth / divisor.value,
- cameraProcess.getProperties().staticProperties.imageHeight / divisor.value);
+ cameraCapture.getProperties().getStaticProperties().imageWidth / divisor.value,
+ cameraCapture.getProperties().getStaticProperties().imageHeight / divisor.value);
}
if (updateUI) {
ServerHandler.sendFullSettings();
diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/CameraStaticProperties.java b/Main/src/main/java/com/chameleonvision/vision/camera/CaptureStaticProperties.java
similarity index 92%
rename from Main/src/main/java/com/chameleonvision/vision/camera/CameraStaticProperties.java
rename to Main/src/main/java/com/chameleonvision/vision/camera/CaptureStaticProperties.java
index 5ab0e17d8..4c991f5d6 100644
--- a/Main/src/main/java/com/chameleonvision/vision/camera/CameraStaticProperties.java
+++ b/Main/src/main/java/com/chameleonvision/vision/camera/CaptureStaticProperties.java
@@ -3,7 +3,7 @@ package com.chameleonvision.vision.camera;
import org.apache.commons.math3.fraction.Fraction;
import org.apache.commons.math3.util.FastMath;
-public class CameraStaticProperties {
+public class CaptureStaticProperties {
public final int imageWidth;
public final int imageHeight;
@@ -14,7 +14,7 @@ public class CameraStaticProperties {
public final double horizontalFocalLength;
public final double verticalFocalLength;
- public CameraStaticProperties(int imageWidth, int imageHeight, double fov) {
+ public CaptureStaticProperties(int imageWidth, int imageHeight, double fov) {
this.imageWidth = imageWidth;
this.imageHeight = imageHeight;
this.fov = fov;
diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProcess.java b/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java
similarity index 94%
rename from Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProcess.java
rename to Main/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java
index 4db1bcab7..b3391bee8 100644
--- a/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProcess.java
+++ b/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraCapture.java
@@ -9,13 +9,13 @@ import edu.wpi.first.cameraserver.CameraServer;
import org.apache.commons.lang3.tuple.Pair;
import org.opencv.core.Mat;
-public class USBCameraProcess implements CameraProcess {
+public class USBCameraCapture implements CameraCapture {
private final UsbCamera baseCamera;
private final CvSink cvSink;
private Mat imageBuffer = new Mat();
private USBCameraProperties properties;
- public USBCameraProcess(CameraConfig config) {
+ public USBCameraCapture(CameraConfig config) {
baseCamera = new UsbCamera(config.name, config.path);
cvSink = CameraServer.getInstance().getVideo(baseCamera);
properties = new USBCameraProperties(baseCamera, config);
diff --git a/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java b/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java
index 28e27b785..e91fe825b 100644
--- a/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java
+++ b/Main/src/main/java/com/chameleonvision/vision/camera/USBCameraProperties.java
@@ -2,9 +2,9 @@ package com.chameleonvision.vision.camera;
import com.chameleonvision.config.CameraConfig;
import com.chameleonvision.util.Platform;
+import com.chameleonvision.vision.image.CaptureProperties;
import edu.wpi.cscore.UsbCamera;
import edu.wpi.cscore.VideoMode;
-import org.apache.commons.math3.util.FastMath;
import java.util.Arrays;
import java.util.List;
@@ -12,7 +12,7 @@ import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-public class USBCameraProperties {
+public class USBCameraProperties extends CaptureProperties {
public static final double DEFAULT_FOV = 70;
private static final int DEFAULT_EXPOSURE = 50;
private static final int DEFAULT_BRIGHTNESS = 50;
@@ -26,19 +26,18 @@ public class USBCameraProperties {
private static final Predicate kMinSizePredicate = (videoMode -> videoMode.width >= MINIMUM_WIDTH && videoMode.height >= MINIMUM_HEIGHT);
private static final Predicate kPixelFormatPredicate = (videoMode -> ALLOWED_PIXEL_FORMATS.contains(videoMode.pixelFormat));
- public CameraStaticProperties staticProperties;
public final String name;
public final String path;
public final List videoModes;
private final UsbCamera baseCamera;
+ private final boolean hasGain;
private String nickname;
public double FOV;
- public final boolean hasGain;
- public USBCameraProperties(UsbCamera baseCamera, CameraConfig config) {
+ USBCameraProperties(UsbCamera baseCamera, CameraConfig config) {
FOV = config.fov;
name = config.name;
path = config.path;
@@ -86,17 +85,8 @@ public class USBCameraProperties {
return validModes.collect(Collectors.toList());
}
- public void updateVideoMode(VideoMode videoMode) {
- staticProperties = new CameraStaticProperties(videoMode.width, videoMode.height, FOV);
- }
-
- public double calculatePitch(double PixelY, double centerY) {
- double pitch = FastMath.toDegrees(FastMath.atan((PixelY - centerY) / staticProperties.verticalFocalLength));
- return (pitch * -1);
- }
-
- public double calculateYaw(double PixelX, double centerX) {
- return FastMath.toDegrees(FastMath.atan((PixelX - centerX) / staticProperties.horizontalFocalLength));
+ void updateVideoMode(VideoMode videoMode) {
+ staticProperties = new CaptureStaticProperties(videoMode.width, videoMode.height, FOV);
}
public List getVideoModes() {
diff --git a/Main/src/main/java/com/chameleonvision/vision/image/CaptureProperties.java b/Main/src/main/java/com/chameleonvision/vision/image/CaptureProperties.java
new file mode 100644
index 000000000..139023fcd
--- /dev/null
+++ b/Main/src/main/java/com/chameleonvision/vision/image/CaptureProperties.java
@@ -0,0 +1,20 @@
+package com.chameleonvision.vision.image;
+
+import com.chameleonvision.vision.camera.CaptureStaticProperties;
+import org.opencv.core.Mat;
+
+public class CaptureProperties {
+
+ protected CaptureStaticProperties staticProperties;
+
+ protected CaptureProperties() {
+ }
+
+ public CaptureProperties(Mat staticImage, double fov) {
+ staticProperties = new CaptureStaticProperties(staticImage.cols(), staticImage.rows(), fov);
+ }
+
+ public CaptureStaticProperties getStaticProperties() {
+ return staticProperties;
+ }
+}
diff --git a/Main/src/main/java/com/chameleonvision/vision/image/ImageCapture.java b/Main/src/main/java/com/chameleonvision/vision/image/ImageCapture.java
new file mode 100644
index 000000000..1d7b3820e
--- /dev/null
+++ b/Main/src/main/java/com/chameleonvision/vision/image/ImageCapture.java
@@ -0,0 +1,12 @@
+package com.chameleonvision.vision.image;
+
+import org.apache.commons.lang3.tuple.Pair;
+import org.opencv.core.Mat;
+
+public interface ImageCapture {
+ /**
+ * Get the next camera frame
+ * @return a Pair of the captured image and the Linux epoch of when the frame was grabbed (in uS)
+ */
+ Pair getFrame();
+}
diff --git a/Main/src/main/java/com/chameleonvision/vision/image/StaticImageCapture.java b/Main/src/main/java/com/chameleonvision/vision/image/StaticImageCapture.java
new file mode 100644
index 000000000..3f738f118
--- /dev/null
+++ b/Main/src/main/java/com/chameleonvision/vision/image/StaticImageCapture.java
@@ -0,0 +1,32 @@
+package com.chameleonvision.vision.image;
+
+import org.apache.commons.lang3.tuple.Pair;
+import org.opencv.core.Mat;
+import org.opencv.imgcodecs.Imgcodecs;
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+public class StaticImageCapture implements ImageCapture {
+
+ private final Mat image = new Mat();
+
+ public StaticImageCapture(Path imagePath) {
+ if (!Files.exists(imagePath)) throw new RuntimeException("Invalid path for image!");
+
+ Mat tempMat = new Mat();
+
+ try {
+ tempMat = Imgcodecs.imread(imagePath.toString());
+ } catch (Exception e) {
+ System.err.println("Failed to read image!");
+ } finally {
+ tempMat.copyTo(image);
+ }
+ }
+
+ @Override
+ public Pair getFrame() {
+ return Pair.of(image, System.nanoTime());
+ }
+}
diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline.java
index a56c03e47..9b27f65d2 100644
--- a/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline.java
+++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/CVPipeline.java
@@ -1,6 +1,6 @@
package com.chameleonvision.vision.pipeline;
-import com.chameleonvision.vision.camera.CameraProcess;
+import com.chameleonvision.vision.camera.CameraCapture;
import org.opencv.core.Mat;
/**
@@ -9,7 +9,7 @@ import org.opencv.core.Mat;
*/
public abstract class CVPipeline {
protected Mat outputMat = new Mat();
- CameraProcess cameraProcess;
+ CameraCapture cameraCapture;
public final S settings;
protected CVPipeline(S settings) {
@@ -21,10 +21,10 @@ public abstract class CVPipeline {
public Pair run(Mat input) {
long processStartNanos = System.nanoTime();
- input.copyTo(processBuffer);
-
- try {
- if (blurSize > 0) {
+ if (blurSize > 0) {
+ input.copyTo(processBuffer);
+ try {
Imgproc.blur(processBuffer, processBuffer, new Size(blurSize, blurSize));
+ processBuffer.copyTo(outputMat);
+ } catch (CvException e) {
+ System.err.println("(BlurPipe) Exception thrown by OpenCV: \n" + e.getMessage());
}
- } catch (CvException e) {
- System.err.println("(BlurPipe) Exception thrown by OpenCV: \n" + e.getMessage());
+ } else {
+ input.copyTo(outputMat);
}
+
long processTime = System.nanoTime() - processStartNanos;
- processBuffer.copyTo(outputMat);
Pair output = Pair.of(outputMat, processTime);
processBuffer.release();
-
return output;
}
}
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 51747cfdd..87a627fc2 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
@@ -1,6 +1,6 @@
package com.chameleonvision.vision.pipeline.pipes;
-import com.chameleonvision.vision.camera.CameraStaticProperties;
+import com.chameleonvision.vision.camera.CaptureStaticProperties;
import com.chameleonvision.vision.pipeline.CVPipeline2d;
import com.chameleonvision.vision.enums.CalibrationMode;
import org.apache.commons.lang3.tuple.Pair;
@@ -13,14 +13,14 @@ import java.util.List;
public class Collect2dTargetsPipe implements Pipe, List> {
private CalibrationMode calibrationMode;
- private CameraStaticProperties camProps;
+ private CaptureStaticProperties camProps;
private List calibrationPoint;
private double calibrationM, calibrationB;
private List targets = new ArrayList<>();
public Collect2dTargetsPipe(CalibrationMode calibrationMode, List calibrationPoint,
- double calibrationM, double calibrationB, CameraStaticProperties camProps) {
+ double calibrationM, double calibrationB, CaptureStaticProperties camProps) {
this.calibrationMode = calibrationMode;
this.camProps = camProps;
this.calibrationPoint = calibrationPoint;
@@ -29,7 +29,7 @@ public class Collect2dTargetsPipe implements Pipe, List calibrationPoint,
- double calibrationM, double calibrationB, CameraStaticProperties camProps) {
+ double calibrationM, double calibrationB, CaptureStaticProperties camProps) {
this.calibrationMode = calibrationMode;
this.camProps = camProps;
this.calibrationPoint = calibrationPoint;
diff --git a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Draw2dContoursPipe.java b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Draw2dContoursPipe.java
index ebbab7d1b..6b95ca930 100644
--- a/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Draw2dContoursPipe.java
+++ b/Main/src/main/java/com/chameleonvision/vision/pipeline/pipes/Draw2dContoursPipe.java
@@ -1,6 +1,6 @@
package com.chameleonvision.vision.pipeline.pipes;
-import com.chameleonvision.vision.camera.CameraStaticProperties;
+import com.chameleonvision.vision.camera.CaptureStaticProperties;
import com.chameleonvision.util.Helpers;
import org.apache.commons.lang3.tuple.Pair;
import org.opencv.core.Point;
@@ -14,11 +14,11 @@ import java.util.List;
public class Draw2dContoursPipe implements Pipe>, Mat> {
private final Draw2dContoursSettings settings;
- private final CameraStaticProperties camProps;
+ private final CaptureStaticProperties camProps;
private Mat outputMat = new Mat();
- public Draw2dContoursPipe(Draw2dContoursSettings settings, CameraStaticProperties camProps) {
+ public Draw2dContoursPipe(Draw2dContoursSettings settings, CaptureStaticProperties camProps) {
this.settings = settings;
this.camProps = camProps;
}
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 97acea6aa..9870e43a5 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
@@ -1,6 +1,6 @@
package com.chameleonvision.vision.pipeline.pipes;
-import com.chameleonvision.vision.camera.CameraStaticProperties;
+import com.chameleonvision.vision.camera.CaptureStaticProperties;
import com.chameleonvision.util.MathHandler;
import org.apache.commons.lang3.tuple.Pair;
import org.opencv.core.MatOfPoint;
@@ -16,18 +16,18 @@ public class FilterContoursPipe implements Pipe, List area;
private List ratio;
private List extent;
- private CameraStaticProperties camProps;
+ private CaptureStaticProperties camProps;
private List filteredContours = new ArrayList<>();
- public FilterContoursPipe(List area, List ratio, List extent, CameraStaticProperties camProps) {
+ public FilterContoursPipe(List area, List ratio, List extent, CaptureStaticProperties camProps) {
this.area = area;
this.ratio = ratio;
this.extent = extent;
this.camProps = camProps;
}
- public void setConfig(List area, List ratio, List extent, CameraStaticProperties camProps) {
+ public void setConfig(List area, List ratio, List extent, CaptureStaticProperties camProps) {
this.area = area;
this.ratio = ratio;
this.extent = extent;
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 a6e28f1c7..329b848a2 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
@@ -1,6 +1,6 @@
package com.chameleonvision.vision.pipeline.pipes;
-import com.chameleonvision.vision.camera.CameraStaticProperties;
+import com.chameleonvision.vision.camera.CaptureStaticProperties;
import com.chameleonvision.vision.enums.SortMode;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.math3.util.FastMath;
@@ -25,16 +25,16 @@ public class SortContoursPipe implements Pipe, List sortedContours = new ArrayList<>();
- public SortContoursPipe(SortMode sort, CameraStaticProperties camProps) {
+ public SortContoursPipe(SortMode sort, CaptureStaticProperties camProps) {
this.sort = sort;
this.camProps = camProps;
}
- public void setConfig(SortMode sort, CameraStaticProperties camProps) {
+ public void setConfig(SortMode sort, CaptureStaticProperties camProps) {
this.sort = sort;
this.camProps = camProps;
}
diff --git a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java
index 35006e66e..b3608b02d 100644
--- a/Main/src/main/java/com/chameleonvision/web/ServerHandler.java
+++ b/Main/src/main/java/com/chameleonvision/web/ServerHandler.java
@@ -3,7 +3,7 @@ package com.chameleonvision.web;
import com.chameleonvision.config.GeneralSettings;
import com.chameleonvision.vision.VisionManager;
import com.chameleonvision.vision.VisionProcess;
-import com.chameleonvision.vision.camera.CameraProcess;
+import com.chameleonvision.vision.camera.CameraCapture;
import com.chameleonvision.config.ConfigManager;
import com.chameleonvision.vision.enums.CalibrationMode;
import com.chameleonvision.vision.pipeline.CVPipeline;
@@ -38,22 +38,23 @@ public class ServerHandler {
sendFullSettings();
}
- public void onClose(WsCloseContext context) {
+ void onClose(WsCloseContext context) {
users.remove(context);
}
+ @SuppressWarnings("unchecked")
void onBinaryMessage(WsBinaryMessageContext context) throws Exception {
- Map deserialized = objectMapper.readValue(ArrayUtils.toPrimitive(context.data()), new TypeReference