diff --git a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/DrawCalibrationPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/DrawCalibrationPipe.java index af3f5ffeb..cf0b04f0d 100644 --- a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/DrawCalibrationPipe.java +++ b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/DrawCalibrationPipe.java @@ -56,6 +56,11 @@ public class DrawCalibrationPipe int i = 0; for (var target : in.getRight()) { for (var c : target.getTargetCorners()) { + if (c.x < 0 || c.y < 0) { + // Skip if the corner is less than zero + continue; + } + c = new Point( c.x / params.divisor.value.doubleValue(), c.y / params.divisor.value.doubleValue()); diff --git a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java index 43e538f7c..a85c57a3e 100644 --- a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java +++ b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/FindBoardCornersPipe.java @@ -116,6 +116,11 @@ public class FindBoardCornersPipe Objdetect.getPredefinedDictionary(params.tagFamily.getValue())); board.setLegacyPattern(params.useOldPattern); detector = new CharucoDetector(board); + detector.getDetectorParameters().set_adaptiveThreshConstant(10); + detector.getDetectorParameters().set_adaptiveThreshWinSizeMin(11); + detector.getDetectorParameters().set_adaptiveThreshWinSizeStep(40); + detector.getDetectorParameters().set_adaptiveThreshWinSizeMax(91); + } else { logger.error("Can't create pattern for unknown board type " + params.type); }