diff --git a/photon-client/src/types/PipelineTypes.ts b/photon-client/src/types/PipelineTypes.ts index 3cc7bb3..96f464f 100644 --- a/photon-client/src/types/PipelineTypes.ts +++ b/photon-client/src/types/PipelineTypes.ts @@ -324,17 +324,20 @@ export interface CustomTestPipelineSettings extends PipelineSettings { test3: number; } export type ConfigurableCustomTestPipelineSettings = Partial< - Omit + Omit > & ConfigurablePipelineSettings; export const DefaultCustomTestPipelineSettings: CustomTestPipelineSettings = { ...DefaultPipelineSettings, pipelineType: PipelineType.CustomTest, - cameraGain: 20, - targetModel: TargetModel.InfiniteRechargeHighGoalOuter, - ledMode: true, - outputShowMultipleTargets: false, - cameraExposureRaw: 6, + cameraGain: 75, + outputShowMultipleTargets: true, + targetModel: TargetModel.AprilTag6p5in_36h11, + cameraExposureRaw: -1, + cameraAutoExposure: true, + ledMode: false, + + test1: 1, test2: 2, test3: 3 diff --git a/photon-core/src/main/java/org/photonvision/vision/pipe/impl/BlurDetectionPipe.java b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/BlurDetectionPipe.java new file mode 100644 index 0000000..09f8351 --- /dev/null +++ b/photon-core/src/main/java/org/photonvision/vision/pipe/impl/BlurDetectionPipe.java @@ -0,0 +1,46 @@ +package org.photonvision.vision.pipe.impl; + +import org.opencv.core.Mat; +import org.opencv.core.MatOfDouble; +import org.opencv.core.Size; +import org.opencv.imgproc.Imgproc; +import org.photonvision.vision.pipe.MutatingPipe; +import org.photonvision.vision.pipe.CVPipe; + +import static org.opencv.core.Core.meanStdDev; + +public class BlurDetectionPipe extends CVPipe { + @Override + protected Double process(Mat in) { + Mat destination = new Mat(); + Imgproc.Laplacian(in, destination, 3); + + MatOfDouble pMean = new MatOfDouble(); + MatOfDouble pStdDev = new MatOfDouble(); + meanStdDev(destination, pMean, pStdDev); + + double sum = 0.0; + double[] arr = pStdDev.toArray(); + for (int i = 0; i < arr.length; i++) { + sum += arr[i]; + } + + return Math.pow(sum, 2); + } + + public static class BlurDetectionParams { + //Default blur settings + public static BlurDetectionParams DEFAULT = new BlurDetectionParams(0.2); + + // Blur threshold + private final double threshhold; + + public BlurDetectionParams(double threshhold) { + this.threshhold = threshhold; + } + + public double getThreshhold() { + return threshhold; + } + } +} diff --git a/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java index a523cdd..dd36e85 100644 --- a/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java +++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/CVPipeline.java @@ -92,7 +92,6 @@ public abstract class CVPipeline { private static final FrameThresholdType PROCESSING_TYPE = FrameThresholdType.GREYSCALE; + private final CalculateFPSPipe calculateFPSPipe = new CalculateFPSPipe(); + private final BlurDetectionPipe blurDetectionPipe = new BlurDetectionPipe(); private final BlurPipe blurPipe = new BlurPipe(); @@ -28,6 +37,7 @@ public class CustomTestPipeline extends CVPipeline