Fix drivermode NPE and rename visionprocess method

This commit is contained in:
Matt
2019-11-27 20:41:29 -08:00
parent 0cb8960005
commit 9e068ea0f0
4 changed files with 25 additions and 18 deletions

View File

@@ -249,9 +249,9 @@ public class VisionProcess {
return currentPipelineIndex;
}
public void addPipeline() {
public void addBlankPipeline() {
// TODO: (2.1) add to UI option between 2d and 3d pipeline
pipelines.add(new CVPipeline2d());
addPipeline(new CVPipeline2d());
}
public void addPipeline(CVPipeline pipeline) {
@@ -260,7 +260,7 @@ public class VisionProcess {
public void addPipeline(CVPipelineSettings settings) {
if (settings instanceof CVPipeline2dSettings) {
pipelines.add(new CVPipeline2d((CVPipeline2dSettings) settings));
addPipeline(new CVPipeline2d((CVPipeline2dSettings) settings));
}
}

View File

@@ -3,6 +3,7 @@ package com.chameleonvision.vision.pipeline;
import com.chameleonvision.vision.pipeline.pipes.Draw2dContoursPipe;
import org.apache.commons.lang3.tuple.Pair;
import org.opencv.core.Mat;
import org.opencv.core.RotatedRect;
import java.util.List;
@@ -10,24 +11,30 @@ import static com.chameleonvision.vision.pipeline.DriverVisionPipeline.DriverPip
public class DriverVisionPipeline extends CVPipeline<DriverPipelineResult, CVPipelineSettings> {
private Draw2dContoursPipe draw2dContoursPipe = null;
private Draw2dContoursPipe.Draw2dContoursSettings draw2dContoursSettings = new Draw2dContoursPipe.Draw2dContoursSettings();
private final List<RotatedRect> blankList = List.of();
public DriverVisionPipeline(CVPipelineSettings settings) {
super(settings);
draw2dContoursSettings.showCrosshair = true;
}
@Override
public DriverPipelineResult runPipeline(Mat inputMat) {
outputMat = inputMat;
inputMat.copyTo(outputMat);
var camProps = cameraCapture.getProperties().getStaticProperties();
if(draw2dContoursPipe == null) {
draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
} else {
draw2dContoursPipe.setConfig(camProps);
}
Draw2dContoursPipe.Draw2dContoursSettings draw2dContoursSettings = new Draw2dContoursPipe.Draw2dContoursSettings();
draw2dContoursSettings.showCrosshair = true;
Draw2dContoursPipe draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
draw2dContoursPipe.run(Pair.of(outputMat, blankList)).getLeft().copyTo(outputMat);
outputMat = draw2dContoursPipe.run(Pair.of(outputMat, null)).getLeft();
return new DriverPipelineResult(null, inputMat, 0);
return new DriverPipelineResult(null, outputMat, 0);
}
public static class DriverPipelineResult extends CVPipelineResult<Void> {