2019-11-04 02:23:13 -05:00
|
|
|
package com.chameleonvision.classabstraction.pipeline;
|
|
|
|
|
|
2019-11-07 09:10:09 -08:00
|
|
|
import com.chameleonvision.classabstraction.camera.CameraProcess;
|
2019-11-04 02:23:13 -05:00
|
|
|
import org.opencv.core.Mat;
|
|
|
|
|
|
2019-11-10 11:47:56 -05:00
|
|
|
import java.util.function.Supplier;
|
|
|
|
|
|
2019-11-04 02:23:13 -05:00
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param <R> Pipeline result type
|
|
|
|
|
*/
|
2019-11-07 11:15:54 -05:00
|
|
|
public abstract class CVPipeline<R extends CVPipelineResult, S extends CVPipelineSettings> {
|
2019-11-04 02:23:13 -05:00
|
|
|
protected Mat outputMat;
|
2019-11-10 11:47:56 -05:00
|
|
|
CameraProcess cameraProcess;
|
|
|
|
|
final Supplier<S> settingsSupplier;
|
|
|
|
|
|
|
|
|
|
public CVPipeline(Supplier<S> settingsSupplier) {
|
|
|
|
|
this.settingsSupplier = settingsSupplier;
|
|
|
|
|
}
|
2019-11-04 02:23:13 -05:00
|
|
|
|
2019-11-10 11:47:56 -05:00
|
|
|
public S getSettings() {
|
|
|
|
|
return settingsSupplier.get();
|
2019-11-04 02:23:13 -05:00
|
|
|
}
|
|
|
|
|
|
2019-11-10 11:47:56 -05:00
|
|
|
public void initPipeline(CameraProcess camera) {
|
|
|
|
|
cameraProcess = camera;
|
|
|
|
|
cameraProcess.setExposure((int) getSettings().exposure);
|
|
|
|
|
cameraProcess.setBrightness((int) getSettings().brightness);
|
|
|
|
|
}
|
|
|
|
|
abstract public R runPipeline(Mat inputMat);
|
2019-11-04 02:23:13 -05:00
|
|
|
}
|