Begin work on VisionProcess, refinement of CVPipeline interactions

This commit is contained in:
Banks Troutman
2019-11-10 11:47:56 -05:00
parent 1e7f380f07
commit 80f711c37c
13 changed files with 300 additions and 110 deletions

View File

@@ -3,19 +3,29 @@ package com.chameleonvision.classabstraction.pipeline;
import com.chameleonvision.classabstraction.camera.CameraProcess;
import org.opencv.core.Mat;
import java.util.function.Supplier;
/**
*
* @param <R> Pipeline result type
*/
public abstract class CVPipeline<R extends CVPipelineResult, S extends CVPipelineSettings> {
protected S settings;
private Mat inputMat;
protected Mat outputMat;
CameraProcess cameraProcess;
final Supplier<S> settingsSupplier;
public CVPipeline(S settings) {
this.settings = settings;
public CVPipeline(Supplier<S> settingsSupplier) {
this.settingsSupplier = settingsSupplier;
}
abstract void initPipeline(CameraProcess camera);
abstract R runPipeline(Mat inputMat);
public S getSettings() {
return settingsSupplier.get();
}
public void initPipeline(CameraProcess camera) {
cameraProcess = camera;
cameraProcess.setExposure((int) getSettings().exposure);
cameraProcess.setBrightness((int) getSettings().brightness);
}
abstract public R runPipeline(Mat inputMat);
}