added show multiple switch in ui and back end

This commit is contained in:
ori agranat
2019-11-29 16:50:16 +02:00
parent 720911e5e6
commit 3ff1f56bd5
7 changed files with 23 additions and 6 deletions

View File

@@ -72,6 +72,8 @@ public class CVPipeline2d extends CVPipeline<CVPipeline2dResult, CVPipeline2dSet
draw2dContoursSettings.boxOutlineSize = 2;
draw2dContoursSettings.showRotatedBox = true;
draw2dContoursSettings.showMaximumBox = true;
draw2dContoursSettings.showMultiple = settings.multiple;
draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
outputMatPipe = new OutputMatPipe(settings.isBinary);
}
@@ -106,7 +108,7 @@ public class CVPipeline2d extends CVPipeline<CVPipeline2dResult, CVPipeline2dSet
sortContoursPipe.setConfig(settings.sortMode, camProps, 5);
collect2dTargetsPipe.setConfig(settings.calibrationMode, settings.point,
settings.dualTargetCalibrationM, settings.dualTargetCalibrationB, camProps);
draw2dContoursPipe.setConfig(camProps);
draw2dContoursPipe.setConfig(settings.multiple, camProps);
outputMatPipe.setConfig(settings.isBinary);
long pipeInitTimeNanos = System.nanoTime() - pipelineStartTimeNanos;

View File

@@ -20,6 +20,7 @@ public class CVPipeline2dSettings extends CVPipelineSettings {
public Number speckle = 5;
public boolean isBinary = false;
public SortMode sortMode = SortMode.Largest;
public boolean multiple = false;
public TargetGroup targetGroup = TargetGroup.Single;
public TargetIntersection targetIntersection = TargetIntersection.Up;
public List<Number> point = Arrays.asList(0, 0);

View File

@@ -29,7 +29,7 @@ public class DriverVisionPipeline extends CVPipeline<DriverPipelineResult, CVPip
if(draw2dContoursPipe == null) {
draw2dContoursPipe = new Draw2dContoursPipe(draw2dContoursSettings, camProps);
} else {
draw2dContoursPipe.setConfig(camProps);
draw2dContoursPipe.setConfig(false,camProps);
}
draw2dContoursPipe.run(Pair.of(outputMat, blankList)).getLeft().copyTo(outputMat);

View File

@@ -25,7 +25,8 @@ public class Draw2dContoursPipe implements Pipe<Pair<Mat, List<RotatedRect>>, Ma
this.camProps = camProps;
}
public void setConfig(CaptureStaticProperties captureProps) {
public void setConfig(boolean showMultiple,CaptureStaticProperties captureProps) {
settings.showMultiple = showMultiple;
camProps = captureProps;
}
@@ -37,7 +38,11 @@ public class Draw2dContoursPipe implements Pipe<Pair<Mat, List<RotatedRect>>, Ma
input.getLeft().copyTo(processBuffer);
if (input.getRight().size() > 0) {
for (RotatedRect r : input.getRight()) {
for (int i = 0; i < input.getRight().size() - 1; i++) {
if (i != 0 && !settings.showMultiple){
break;
}
RotatedRect r = input.getRight().get(i);
if (r == null) continue;
List<MatOfPoint> drawnContour = new ArrayList<>();
@@ -79,10 +84,10 @@ public class Draw2dContoursPipe implements Pipe<Pair<Mat, List<RotatedRect>>, Ma
long processTime = System.nanoTime() - processStartNanos;
return Pair.of(outputMat, processTime);
}
public static class Draw2dContoursSettings {
public boolean showCentroid = false;
public boolean showCrosshair = false;
public boolean showMultiple = false;
public int boxOutlineSize = 0;
public boolean showRotatedBox = false;
public boolean showMaximumBox = false;