2019-11-23 11:55:20 -05:00
|
|
|
package com.chameleonvision.vision.pipeline;
|
|
|
|
|
|
|
|
|
|
import com.chameleonvision.vision.pipeline.pipes.Draw2dContoursPipe;
|
|
|
|
|
import org.apache.commons.lang3.tuple.Pair;
|
|
|
|
|
import org.opencv.core.Mat;
|
2019-11-27 20:41:29 -08:00
|
|
|
import org.opencv.core.RotatedRect;
|
2019-11-23 11:55:20 -05:00
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import static com.chameleonvision.vision.pipeline.DriverVisionPipeline.DriverPipelineResult;
|
|
|
|
|
|
|
|
|
|
public class DriverVisionPipeline extends CVPipeline<DriverPipelineResult, CVPipelineSettings> {
|
|
|
|
|
|
2019-11-27 20:41:29 -08:00
|
|
|
private Draw2dContoursPipe draw2dContoursPipe = null;
|
|
|
|
|
private Draw2dContoursPipe.Draw2dContoursSettings draw2dContoursSettings = new Draw2dContoursPipe.Draw2dContoursSettings();
|
|
|
|
|
private final List<RotatedRect> blankList = List.of();
|
|
|
|
|
|
2019-11-23 11:55:20 -05:00
|
|
|
public DriverVisionPipeline(CVPipelineSettings settings) {
|
|
|
|
|
super(settings);
|
2019-11-27 20:41:29 -08:00
|
|
|
draw2dContoursSettings.showCrosshair = true;
|
2019-11-23 11:55:20 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public DriverPipelineResult runPipeline(Mat inputMat) {
|
|
|
|
|
|
2019-11-27 20:41:29 -08:00
|
|
|
inputMat.copyTo(outputMat);
|
2019-11-23 11:55:20 -05:00
|
|
|
|
2019-11-25 05:34:04 -05:00
|
|
|
var camProps = cameraCapture.getProperties().getStaticProperties();
|
2019-11-27 20:41:29 -08:00
|
|
|
if(draw2dContoursPipe == null) {
|
|
|
|
|
draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
|
|
|
|
|
} else {
|
|
|
|
|
draw2dContoursPipe.setConfig(camProps);
|
|
|
|
|
}
|
2019-11-23 11:55:20 -05:00
|
|
|
|
2019-11-27 20:41:29 -08:00
|
|
|
draw2dContoursPipe.run(Pair.of(outputMat, blankList)).getLeft().copyTo(outputMat);
|
2019-11-23 11:55:20 -05:00
|
|
|
|
2019-11-27 20:41:29 -08:00
|
|
|
return new DriverPipelineResult(null, outputMat, 0);
|
2019-11-23 11:55:20 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static class DriverPipelineResult extends CVPipelineResult<Void> {
|
|
|
|
|
public DriverPipelineResult(List<Void> targets, Mat outputMat, long processTime) {
|
|
|
|
|
super(targets, outputMat, processTime);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|