mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-23 01:21:40 +00:00
Begin further work on abstraction layout in separate package
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package com.chameleonvision.classabstraction.pipeline;
|
||||
|
||||
import org.opencv.core.Mat;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param <R> Pipeline result type
|
||||
*/
|
||||
public abstract class CVPipeline<R> {
|
||||
private CVPipelineSettings settings;
|
||||
private Mat inputMat;
|
||||
protected Mat outputMat;
|
||||
|
||||
public CVPipeline(CVPipelineSettings settings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
abstract void initPipeline();
|
||||
abstract R runPipeline(Mat inputMat);
|
||||
abstract Mat getOutputMat();
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.chameleonvision.classabstraction.pipeline;
|
||||
|
||||
public class CVPipeline2dSettings extends CVPipelineSettings {
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.chameleonvision.classabstraction.pipeline;
|
||||
|
||||
public abstract class CVPipeline3dSettings extends CVPipelineSettings {
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.chameleonvision.classabstraction.pipeline;
|
||||
|
||||
import com.chameleonvision.vision.CalibrationMode;
|
||||
import com.chameleonvision.vision.SortMode;
|
||||
import com.chameleonvision.vision.TargetGroup;
|
||||
import com.chameleonvision.vision.TargetIntersection;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class CVPipelineSettings {
|
||||
List<Number> hue = Arrays.asList(50, 180);
|
||||
List<Number> saturation = Arrays.asList(50, 255);
|
||||
List<Number> value = Arrays.asList(50, 255);
|
||||
boolean erode = false;
|
||||
boolean dilate = false;
|
||||
List<Number> area = Arrays.asList(0.0, 100.0);
|
||||
List<Number> ratio = Arrays.asList(0.0, 20.0);
|
||||
List<Number> extent = Arrays.asList(0, 100);
|
||||
Number speckle = 5;
|
||||
boolean isBinary = false;
|
||||
SortMode sortMode = SortMode.Largest;
|
||||
TargetGroup targetGroup = TargetGroup.Single;
|
||||
TargetIntersection targetIntersection = TargetIntersection.Up;
|
||||
double m = 1;
|
||||
double b = 0;
|
||||
List<Number> point = Arrays.asList(0,0);
|
||||
CalibrationMode calibrationMode = CalibrationMode.None;
|
||||
String nickname = "";
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.chameleonvision.classabstraction.pipeline;
|
||||
|
||||
import org.opencv.core.Mat;
|
||||
|
||||
public class DriverVisionPipeline extends CVPipeline<Void> {
|
||||
public DriverVisionPipeline(CVPipelineSettings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
void initPipeline() {
|
||||
// set exposure/brightness of camera?
|
||||
}
|
||||
|
||||
@Override
|
||||
Void runPipeline(Mat inputMat) {
|
||||
this.outputMat = inputMat;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
Mat getOutputMat() {
|
||||
return this.outputMat;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user