diff --git a/photon-client/src/components/cameras/CameraCalibrationCard.vue b/photon-client/src/components/cameras/CameraCalibrationCard.vue index f22e50481..1bd01bc8d 100644 --- a/photon-client/src/components/cameras/CameraCalibrationCard.vue +++ b/photon-client/src/components/cameras/CameraCalibrationCard.vue @@ -242,7 +242,7 @@ const endCalibration = () => { calibSuccess.value = undefined; calibEndpointFail.value = false; - if (!useStateStore().calibrationData.hasEnoughImages) { + if (!hasEnoughImages.value) { calibCanceled.value = true; } @@ -270,6 +270,10 @@ const endCalibration = () => { const drawAllSnapshots = ref(true); +const bypassVal = ref(false); +const minCount = computed(() => (bypassVal.value ? 10 : 100)); +const hasEnoughImages = computed(() => useStateStore().calibrationData.imageCount >= minCount.value); + const showCalDialog = ref(false); const selectedVideoFormat = ref(undefined); const setSelectedVideoFormat = (format: VideoFormat) => { @@ -540,11 +544,22 @@ const setSelectedVideoFormat = (format: VideoFormat) => { Snapshots: {{ useStateStore().calibrationData.imageCount }} of at least - {{ useStateStore().calibrationData.minimumImageCount }} + {{ minCount }} + +
{ size="small" block :variant="theme.global.current.value.dark ? 'outlined' : 'elevated'" - :color="useStateStore().calibrationData.hasEnoughImages ? 'buttonActive' : 'error'" + :color="hasEnoughImages ? 'buttonActive' : 'error'" :disabled="!isCalibrating || !settingsValid" @click="endCalibration" > - {{ useStateStore().calibrationData.hasEnoughImages ? "mdi-flag-checkered" : "mdi-flag-off-outline" }} + {{ hasEnoughImages ? "mdi-flag-checkered" : "mdi-flag-off-outline" }} - {{ - useStateStore().calibrationData.hasEnoughImages ? "Finish Calibration" : "Cancel Calibration" - }} + {{ hasEnoughImages ? "Finish Calibration" : "Cancel Calibration" }}
diff --git a/photon-client/src/stores/StateStore.ts b/photon-client/src/stores/StateStore.ts index 456477cef..1739eb70c 100644 --- a/photon-client/src/stores/StateStore.ts +++ b/photon-client/src/stores/StateStore.ts @@ -40,8 +40,6 @@ interface StateStore { calibrationData: { imageCount: number; videoFormatIndex: number; - minimumImageCount: number; - hasEnoughImages: boolean; }; snackbarData: { @@ -89,9 +87,7 @@ export const useStateStore = defineStore("state", { calibrationData: { imageCount: 0, - videoFormatIndex: 0, - minimumImageCount: 12, - hasEnoughImages: false + videoFormatIndex: 0 }, snackbarData: { @@ -162,9 +158,7 @@ export const useStateStore = defineStore("state", { updateCalibrationStateValuesFromWebsocket(data: WebsocketCalibrationData) { this.calibrationData = { imageCount: data.count, - videoFormatIndex: data.videoModeIndex, - minimumImageCount: data.minCount, - hasEnoughImages: data.hasEnough + videoFormatIndex: data.videoModeIndex }; }, updateDiscoveredCameras(data: VsmState) { diff --git a/photon-client/src/stores/settings/CameraSettingsStore.ts b/photon-client/src/stores/settings/CameraSettingsStore.ts index 4382e4419..c6a6e0341 100644 --- a/photon-client/src/stores/settings/CameraSettingsStore.ts +++ b/photon-client/src/stores/settings/CameraSettingsStore.ts @@ -385,8 +385,6 @@ export const useCameraSettingsStore = defineStore("cameraSettings", { const payload = { startPnpCalibration: { count: stateCalibData.imageCount, - minCount: stateCalibData.minimumImageCount, - hasEnough: stateCalibData.hasEnoughImages, videoModeIndex: stateCalibData.videoFormatIndex, ...calibrationInitData }, 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 e7f6a974c..d89c3fbf8 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 @@ -63,21 +63,14 @@ public class Calibrate3dPipeline /// Output of the calibration, getter method is set for this. private CVPipeResult calibrationOutput; - private final int minSnapshots; - private boolean calibrating = false; private static final FrameThresholdType PROCESSING_TYPE = FrameThresholdType.NONE; public Calibrate3dPipeline() { - this(12); - } - - public Calibrate3dPipeline(int minSnapshots) { super(PROCESSING_TYPE); this.settings = new Calibration3dPipelineSettings(); this.foundCornersList = new ArrayList<>(); - this.minSnapshots = minSnapshots; } @Override @@ -164,21 +157,7 @@ public class Calibrate3dPipeline return foundCornersList.stream().map(it -> it.imagePoints.toList()).toList(); } - public boolean hasEnough() { - return foundCornersList.size() >= minSnapshots; - } - public CameraCalibrationCoefficients tryCalibration(Path imageSavePath) { - if (!hasEnough()) { - logger.info( - "Not enough snapshots! Only got " - + foundCornersList.size() - + " of " - + minSnapshots - + " -- returning null.."); - return null; - } - this.calibrating = true; /* @@ -216,8 +195,6 @@ public class Calibrate3dPipeline new UICalibrationData( foundCornersList.size(), settings.cameraVideoModeIndex, - minSnapshots, - hasEnough(), Units.metersToInches(settings.gridSize), Units.metersToInches(settings.markerSize), settings.boardWidth, diff --git a/photon-core/src/main/java/org/photonvision/vision/pipeline/UICalibrationData.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/UICalibrationData.java index 3bd021e5e..59842ba3a 100644 --- a/photon-core/src/main/java/org/photonvision/vision/pipeline/UICalibrationData.java +++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/UICalibrationData.java @@ -22,8 +22,6 @@ import org.opencv.objdetect.Objdetect; public class UICalibrationData { public int videoModeIndex; public int count; - public int minCount; - public boolean hasEnough; public double squareSizeIn; public int patternWidth; public int patternHeight; @@ -37,8 +35,6 @@ public class UICalibrationData { public UICalibrationData( int count, int videoModeIndex, - int minCount, - boolean hasEnough, double squareSizeIn, double markerSizeIn, int patternWidth, @@ -47,9 +43,7 @@ public class UICalibrationData { boolean useOldPattern, TagFamily tagFamily) { this.count = count; - this.minCount = minCount; this.videoModeIndex = videoModeIndex; - this.hasEnough = hasEnough; this.squareSizeIn = squareSizeIn; this.markerSizeIn = markerSizeIn; this.patternWidth = patternWidth; @@ -90,10 +84,6 @@ public class UICalibrationData { + videoModeIndex + ", count=" + count - + ", minCount=" - + minCount - + ", hasEnough=" - + hasEnough + ", squareSizeIn=" + squareSizeIn + ", markerSizeIn=" diff --git a/photon-core/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java b/photon-core/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java index fac991ff3..91529f65f 100644 --- a/photon-core/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java +++ b/photon-core/src/test/java/org/photonvision/vision/pipeline/Calibrate3dPipeTest.java @@ -216,7 +216,7 @@ public class Calibrate3dPipeTest { assertTrue(directoryListing.length >= 12); - Calibrate3dPipeline calibration3dPipeline = new Calibrate3dPipeline(10); + Calibrate3dPipeline calibration3dPipeline = new Calibrate3dPipeline(); calibration3dPipeline.getSettings().boardType = boardType; calibration3dPipeline.getSettings().markerSize = markerSize; calibration3dPipeline.getSettings().tagFamily = tagFamily;