mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-22 01:11:40 +00:00
Begin work on VisionProcess, refinement of CVPipeline interactions
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user