Begin further work on abstraction layout in separate package

This commit is contained in:
Banks Troutman
2019-11-04 02:23:13 -05:00
parent 42b76dfbf9
commit 1bca800f4f
13 changed files with 232 additions and 26 deletions

View File

@@ -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();
}

View File

@@ -0,0 +1,4 @@
package com.chameleonvision.classabstraction.pipeline;
public class CVPipeline2dSettings extends CVPipelineSettings {
}

View File

@@ -0,0 +1,4 @@
package com.chameleonvision.classabstraction.pipeline;
public abstract class CVPipeline3dSettings extends CVPipelineSettings {
}

View File

@@ -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 = "";
}

View File

@@ -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;
}
}