mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-21 01:01:41 +00:00
Start work on video mode selection
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.chameleonvision.vision;
|
||||
|
||||
import com.chameleonvision.Debug;
|
||||
import com.chameleonvision.Main;
|
||||
import com.chameleonvision.config.ConfigManager;
|
||||
import com.chameleonvision.util.LoopingRunnable;
|
||||
import com.chameleonvision.vision.camera.CameraCapture;
|
||||
@@ -16,7 +15,6 @@ import edu.wpi.first.wpiutil.CircularBuffer;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.opencv.core.Mat;
|
||||
|
||||
import java.net.Socket;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -237,6 +235,14 @@ public class VisionProcess {
|
||||
cameraStreamer.setNewVideoMode(newMode);
|
||||
}
|
||||
|
||||
public VideoMode getCurrentVideoMode() {
|
||||
return cameraCapture.getCurrentVideoMode();
|
||||
}
|
||||
|
||||
public List<VideoMode> getPossibleVideoModes() {
|
||||
return cameraCapture.getProperties().videoModes;
|
||||
}
|
||||
|
||||
public List<CVPipeline> getPipelines() {
|
||||
return pipelines;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import edu.wpi.cscore.VideoMode;
|
||||
public interface CameraCapture extends ImageCapture {
|
||||
USBCameraProperties getProperties();
|
||||
|
||||
public VideoMode getCurrentVideoMode();
|
||||
|
||||
/**
|
||||
* Set the exposure of the camera
|
||||
* @param exposure the new exposure to set the camera to
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.chameleonvision.vision.camera;
|
||||
|
||||
import edu.wpi.cscore.VideoMode;
|
||||
import org.apache.commons.math3.fraction.Fraction;
|
||||
import org.apache.commons.math3.util.FastMath;
|
||||
|
||||
@@ -13,8 +14,10 @@ public class CaptureStaticProperties {
|
||||
public final double centerY;
|
||||
public final double horizontalFocalLength;
|
||||
public final double verticalFocalLength;
|
||||
public final VideoMode mode;
|
||||
|
||||
public CaptureStaticProperties(int imageWidth, int imageHeight, double fov) {
|
||||
public CaptureStaticProperties(VideoMode mode, int imageWidth, int imageHeight, double fov) {
|
||||
this.mode = mode;
|
||||
this.imageWidth = imageWidth;
|
||||
this.imageHeight = imageHeight;
|
||||
this.fov = fov;
|
||||
|
||||
@@ -28,6 +28,11 @@ public class USBCameraCapture implements CameraCapture {
|
||||
return properties;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VideoMode getCurrentVideoMode() {
|
||||
return baseCamera.getVideoMode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pair<Mat, Long> getFrame() {
|
||||
Long deltaTime;
|
||||
|
||||
@@ -69,7 +69,7 @@ public class USBCameraProperties extends CaptureProperties {
|
||||
|
||||
public void setFOV(double FOV) {
|
||||
this.FOV = FOV;
|
||||
staticProperties = new CaptureStaticProperties(staticProperties.imageWidth, staticProperties.imageHeight, FOV);
|
||||
staticProperties = new CaptureStaticProperties(staticProperties.mode, staticProperties.imageWidth, staticProperties.imageHeight, FOV);
|
||||
}
|
||||
|
||||
public double getFOV() {
|
||||
@@ -91,7 +91,7 @@ public class USBCameraProperties extends CaptureProperties {
|
||||
}
|
||||
|
||||
void updateVideoMode(VideoMode videoMode) {
|
||||
staticProperties = new CaptureStaticProperties(videoMode.width, videoMode.height, FOV);
|
||||
staticProperties = new CaptureStaticProperties(videoMode, videoMode.width, videoMode.height, FOV);
|
||||
}
|
||||
|
||||
public List<VideoMode> getVideoModes() {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.chameleonvision.vision.image;
|
||||
|
||||
import com.chameleonvision.vision.camera.CaptureStaticProperties;
|
||||
import edu.wpi.cscore.VideoMode;
|
||||
import org.opencv.core.Mat;
|
||||
|
||||
public class CaptureProperties {
|
||||
@@ -11,7 +12,7 @@ public class CaptureProperties {
|
||||
}
|
||||
|
||||
public CaptureProperties(Mat staticImage, double fov) {
|
||||
staticProperties = new CaptureStaticProperties(staticImage.cols(), staticImage.rows(), fov);
|
||||
staticProperties = new CaptureStaticProperties(new VideoMode(0, staticImage.cols(), staticImage.rows(), 99999), staticImage.cols(), staticImage.rows(), fov);
|
||||
}
|
||||
|
||||
public CaptureStaticProperties getStaticProperties() {
|
||||
|
||||
@@ -221,7 +221,7 @@ public class SocketHandler {
|
||||
tmp.put("fov", currentCamera.getProperties().getFOV());
|
||||
tmp.put("streamDivisor", currentVisionProcess.cameraStreamer.getDivisor().ordinal());
|
||||
// TODO: (HIGH) get videomode index!
|
||||
// tmp.put("resolution", currentCamera.getVideoModeIndex());
|
||||
// tmp.put("resolution", currentCamera.getVideoModeIndex());
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user