diff --git a/gs-cv/src/main/java/org/genericsystem/cv/classifier/AbstractFields.java b/gs-cv/src/main/java/org/genericsystem/cv/classifier/AbstractFields.java index b3e483859..6569ff3e4 100644 --- a/gs-cv/src/main/java/org/genericsystem/cv/classifier/AbstractFields.java +++ b/gs-cv/src/main/java/org/genericsystem/cv/classifier/AbstractFields.java @@ -54,6 +54,10 @@ public void drawOcrPerspectiveInverse(Img display, Mat homography, Scalar color, stream().filter(field -> field.getDeadCounter() == 0).forEach(field -> field.drawOcrPerspectiveInverse(display, homography, color, thickness)); } + public void drawFieldsOnStabilized(Img stabilized) { + stream().filter(f -> f.getDeadCounter() == 0).forEach(f -> f.draw(stabilized, f.getDeadCounter() == 0 ? new Scalar(0, 255, 0) : new Scalar(0, 0, 255))); + } + public void drawConsolidated(Img stabilizedDisplay) { consolidatedFieldStream().forEach(field -> field.draw(stabilizedDisplay, new Scalar(0, 0, 255))); } diff --git a/gs-cv/src/main/java/org/genericsystem/cv/classifier/CamLiveRetriever.java b/gs-cv/src/main/java/org/genericsystem/cv/classifier/CamLiveRetriever.java index 57dc26282..c842caffd 100644 --- a/gs-cv/src/main/java/org/genericsystem/cv/classifier/CamLiveRetriever.java +++ b/gs-cv/src/main/java/org/genericsystem/cv/classifier/CamLiveRetriever.java @@ -122,9 +122,9 @@ protected void fillGrid(GridPane mainGrid) { Img stabilizedDisplay = new Img(stabilized.getSrc(), true); if (stabilizationHasChanged) { Stats.beginTask("stabilizationHasChanged"); - Mat fieldsHomography = new Mat(); stabilized = newImgDescriptor.getDeperspectivedImg(); stabilizedDisplay = new Img(stabilized.getSrc(), true); + Mat fieldsHomography = new Mat(); Core.gemm(deperspectivGraphy, stabilizationHomography.inv(), 1, new Mat(), 0, fieldsHomography); Stats.beginTask("restabilizeFields"); fields.restabilizeFields(fieldsHomography); @@ -135,8 +135,7 @@ protected void fillGrid(GridPane mainGrid) { fields.removeOverlaps(); - final Img stabilizedDisplay_ = stabilizedDisplay; - fields.stream().filter(f -> f.getDeadCounter() == 0).forEach(f -> f.draw(stabilizedDisplay_, f.getDeadCounter() == 0 ? new Scalar(0, 255, 0) : new Scalar(0, 0, 255))); + fields.drawFieldsOnStabilized(stabilizedDisplay); stabilizedImgDescriptor = newImgDescriptor; stabilizationHomography = deperspectivGraphy;