From 3506d8f61cb52ced29a099846b939d5f980c5ed5 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 3 Jan 2024 12:52:26 -0700 Subject: [PATCH] Remove extra legacy calibration things --- .../common/util/math/MathUtils.java | 8 +++++ .../vision/pipeline/Calibrate3dPipeline.java | 30 ------------------- .../vision/processes/VisionModule.java | 1 - 3 files changed, 8 insertions(+), 31 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java b/photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java index 85e5121957..11d234c025 100644 --- a/photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java +++ b/photon-core/src/main/java/org/photonvision/common/util/math/MathUtils.java @@ -201,6 +201,14 @@ public static void rotationToOpencvRvec(Rotation3d rotation, Mat rvecOutput) { rvecOutput.put(0, 0, axis.getData()); } + /** + * Convert an Opencv rvec+tvec pair to a Pose3d. + * + * @param rVec Axis-angle rotation vector, where norm(rVec) is the angle about a unit vector in + * the direction of rVec + * @param tVec 3D translation + * @return Pose3d representing the same rigid transform + */ public static Pose3d opencvRTtoPose3d(Mat rVec, Mat tVec) { Translation3d translation = new Translation3d(tVec.get(0, 0)[0], tVec.get(1, 0)[0], tVec.get(2, 0)[0]); diff --git a/photon-core/src/main/java/org/photonvision/vision/pipeline/Calibrate3dPipeline.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/Calibrate3dPipeline.java index d922c510a5..ecc931f5ed 100644 --- a/photon-core/src/main/java/org/photonvision/vision/pipeline/Calibrate3dPipeline.java +++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/Calibrate3dPipeline.java @@ -18,7 +18,6 @@ package org.photonvision.vision.pipeline; import edu.wpi.first.math.util.Units; -import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -26,14 +25,11 @@ import org.opencv.core.Mat; import org.opencv.core.Point; import org.opencv.core.Size; -import org.opencv.imgcodecs.Imgcodecs; -import org.photonvision.common.configuration.ConfigManager; import org.photonvision.common.dataflow.DataChangeService; import org.photonvision.common.dataflow.events.OutgoingUIEvent; import org.photonvision.common.logging.LogGroup; import org.photonvision.common.logging.Logger; import org.photonvision.common.util.SerializationUtils; -import org.photonvision.common.util.file.FileUtils; import org.photonvision.vision.calibration.BoardObservation; import org.photonvision.vision.calibration.CameraCalibrationCoefficients; import org.photonvision.vision.frame.Frame; @@ -71,9 +67,6 @@ public class Calibrate3dPipeline private boolean calibrating = false; - // Path to save images - private final Path imageDir; - private static final FrameThresholdType PROCESSING_TYPE = FrameThresholdType.NONE; public Calibrate3dPipeline(String uniqueName) { @@ -85,8 +78,6 @@ public Calibrate3dPipeline(int minSnapshots, String uniqueName) { this.settings = new Calibration3dPipelineSettings(); this.foundCornersList = new ArrayList<>(); this.minSnapshots = minSnapshots; - this.imageDir = - Path.of(ConfigManager.getInstance().getCalibDir().toAbsolutePath().toString(), uniqueName); } @Override @@ -144,7 +135,6 @@ protected CVPipelineResult process(Frame frame, Calibration3dPipelineSettings se findBoardResult.inputImage = inputColorMat.clone(); foundCornersList.add(findBoardResult); - saveCalImage(inputColorMat); // update the UI broadcastState(); @@ -162,32 +152,12 @@ protected CVPipelineResult process(Frame frame, Calibration3dPipelineSettings se getCornersList()); } - private void saveCalImage(Mat img) { - var folder = Path.of(imageDir.toString(), img.size().toString()); - if (!folder.toFile().exists()) { - folder.toFile().mkdirs(); - } - if (!folder.toFile().exists()) { - logger.error("Could not create save folder! " + folder); - } - Imgcodecs.imwrite( - Path.of(folder.toAbsolutePath().toString(), "img" + foundCornersList.size() + ".png") - .toString(), - img); - } - List> getCornersList() { return foundCornersList.stream() .map(it -> it.imagePoints.toList()) .collect(Collectors.toList()); } - public void deleteSavedImages(Size resolution) { - var folder = Path.of(imageDir.toString(), resolution.toString()); - folder.toFile().mkdirs(); - FileUtils.deleteDirectory(folder); - } - public boolean hasEnough() { return foundCornersList.size() >= minSnapshots; } diff --git a/photon-core/src/main/java/org/photonvision/vision/processes/VisionModule.java b/photon-core/src/main/java/org/photonvision/vision/processes/VisionModule.java index c8c1325ef7..da596f70bc 100644 --- a/photon-core/src/main/java/org/photonvision/vision/processes/VisionModule.java +++ b/photon-core/src/main/java/org/photonvision/vision/processes/VisionModule.java @@ -340,7 +340,6 @@ public void startCalibration(UICalibrationData data) { var videoMode = visionSource.getSettables().getAllVideoModes().get(data.videoModeIndex); var resolution = new Size(videoMode.width, videoMode.height); - pipelineManager.calibration3dPipeline.deleteSavedImages(resolution); settings.cameraVideoModeIndex = data.videoModeIndex; visionSource.getSettables().setVideoModeIndex(data.videoModeIndex); logger.info(