diff --git a/Main/src/main/java/com/chameleonvision/classabstraction/camera/CameraProcess.java b/Main/src/main/java/com/chameleonvision/classabstraction/camera/CameraProcess.java index df4a4c38f..d8474979c 100644 --- a/Main/src/main/java/com/chameleonvision/classabstraction/camera/CameraProcess.java +++ b/Main/src/main/java/com/chameleonvision/classabstraction/camera/CameraProcess.java @@ -4,6 +4,8 @@ import org.apache.commons.lang3.tuple.Pair; import org.opencv.core.Mat; public interface CameraProcess { + CameraProperties getProperties(); + Pair getFrame(Mat frame); void setExposure(int exposure); diff --git a/Main/src/main/java/com/chameleonvision/classabstraction/camera/USBCamera.java b/Main/src/main/java/com/chameleonvision/classabstraction/camera/USBCameraProcess.java similarity index 75% rename from Main/src/main/java/com/chameleonvision/classabstraction/camera/USBCamera.java rename to Main/src/main/java/com/chameleonvision/classabstraction/camera/USBCameraProcess.java index 15dc844ad..fcaea50e6 100644 --- a/Main/src/main/java/com/chameleonvision/classabstraction/camera/USBCamera.java +++ b/Main/src/main/java/com/chameleonvision/classabstraction/camera/USBCameraProcess.java @@ -8,19 +8,24 @@ import edu.wpi.first.cameraserver.CameraServer; import org.apache.commons.lang3.tuple.Pair; import org.opencv.core.Mat; -public class USBCamera implements CameraProcess { +public class USBCameraProcess implements CameraProcess { private final UsbCamera baseCamera; - public final CameraProperties properties; private final CvSink cvSink; private Mat imageBuffer = new Mat(); + public final CameraProperties properties; - public USBCamera(UsbCamera camera, double fov) { + public USBCameraProcess(UsbCamera camera, double fov) { baseCamera = camera; cvSink = CameraServer.getInstance().getVideo(baseCamera); VideoMode vidMode = new VideoMode(VideoMode.PixelFormat.kYUYV, 640, 480, 60); properties = new CameraProperties(baseCamera, fov); } + @Override + public CameraProperties getProperties() { + return properties; + } + @Override public Pair getFrame(Mat frame) { var timestamp = System.nanoTime(); @@ -34,7 +39,7 @@ public class USBCamera implements CameraProcess { try { baseCamera.setExposureManual(exposure); } catch (VideoException e) { - System.err.println("USBCamera Does not support exposure change"); + System.err.println("USBCameraProcess Does not support exposure change"); } } @@ -43,7 +48,7 @@ public class USBCamera implements CameraProcess { try { baseCamera.setBrightness(brightness); } catch (VideoException e) { - System.err.println("USBCamera Does not support brightness change"); + System.err.println("USBCameraProcess Does not support brightness change"); } } } diff --git a/Main/src/main/java/com/chameleonvision/classabstraction/pipeline/CVPipeline.java b/Main/src/main/java/com/chameleonvision/classabstraction/pipeline/CVPipeline.java index b0a77c234..e7c686fc1 100644 --- a/Main/src/main/java/com/chameleonvision/classabstraction/pipeline/CVPipeline.java +++ b/Main/src/main/java/com/chameleonvision/classabstraction/pipeline/CVPipeline.java @@ -1,6 +1,6 @@ package com.chameleonvision.classabstraction.pipeline; -import com.chameleonvision.classabstraction.camera.USBCamera; +import com.chameleonvision.classabstraction.camera.CameraProcess; import org.opencv.core.Mat; /** @@ -16,6 +16,6 @@ public abstract class CVPipeline { - private USBCamera camera; + private CameraProcess cameraProcess; private Mat rawCameraMat = new Mat(); private Mat hsvOutputMat = new Mat(); @@ -23,8 +23,8 @@ public class CVPipeline2d extends CVPipeline { @@ -10,7 +9,7 @@ public class DriverVisionPipeline extends CVPipeline v.fps >= MINIMUM_FPS && v.width >= MINIMUM_WIDTH && v.height >= MINIMUM_HEIGHT && ALLOWED_PIXEL_FORMATS.contains(v.pixelFormat)).toArray(VideoMode[]::new); if (availableVideoModes.length == 0) { - System.err.println("USBCamera not supported!"); + System.err.println("USBCameraProcess not supported!"); throw new RuntimeException(new CameraException(CameraException.CameraExceptionType.BAD_CAMERA)); } if (videoModeIndex <= availableVideoModes.length - 1) { @@ -283,7 +283,7 @@ public class USBCamera { try { UsbCam.setExposureManual(exposure); } catch (VideoException e) { - System.err.println("USBCamera Does not support exposure change"); + System.err.println("USBCameraProcess Does not support exposure change"); } } diff --git a/Main/src/main/java/com/chameleonvision/vision/process/StandardCVProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/StandardCVProcess.java index e7a0585b4..195ca8771 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/StandardCVProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/StandardCVProcess.java @@ -122,7 +122,7 @@ public class StandardCVProcess implements CVProcess { pipelineResult.IsValid = true; switch (currentPipeline.calibrationMode) { case None: - ///use the center of the USBCamera to find the pitch and yaw difference + ///use the center of the USBCameraProcess to find the pitch and yaw difference pipelineResult.CalibratedX = cameraValues.CenterX; pipelineResult.CalibratedY = cameraValues.CenterY; break; diff --git a/Main/src/main/java/com/chameleonvision/vision/process/USBCameraProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/USBCameraProcess.java index 3491c893a..b01b24942 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/USBCameraProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/USBCameraProcess.java @@ -80,7 +80,7 @@ public class USBCameraProcess implements CameraProcess { } } - // USBCamera stuff + // USBCameraProcess stuff @Override public String getCamName() { diff --git a/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java b/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java index b8a4fa360..44caa86f9 100644 --- a/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java +++ b/Main/src/main/java/com/chameleonvision/vision/process/VisionProcess.java @@ -41,7 +41,7 @@ public class VisionProcess implements Runnable { public VisionProcess(CameraProcess cameraProcess) { - // USBCamera settings + // USBCameraProcess settings cvProcess = new StandardCVProcess(cameraProcess.getCamVals()); this.cameraProcess = cameraProcess; // new USBCameraProcess(cameraProcess);