diff --git a/gs-cv/src/main/java/org/genericsystem/cv/Svd.java b/gs-cv/src/main/java/org/genericsystem/cv/Svd.java index 842e996b4..ed1591fa7 100644 --- a/gs-cv/src/main/java/org/genericsystem/cv/Svd.java +++ b/gs-cv/src/main/java/org/genericsystem/cv/Svd.java @@ -98,7 +98,7 @@ public static List solve(List srcPts, int[][] rects) { Mat eigenValues = new Mat(); Mat eigenVectors = new Mat(); - Core.eigenNonSymmetric(M, eigenValues, eigenVectors); + Core.eigen(M, eigenValues, eigenVectors); int minIndex = -1; for (int i = eigenValues.rows() - 1; i >= 0; i--) { if (eigenValues.get(i, 0)[0] > Precision.EPSILON) { diff --git a/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo2.java b/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo2.java index 5c6bea979..a7b93de34 100644 --- a/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo2.java +++ b/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo2.java @@ -1,16 +1,5 @@ package org.genericsystem.cv.application; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - import org.genericsystem.cv.AbstractApp; import org.genericsystem.cv.Img; import org.genericsystem.cv.utils.NativeLibraryLoader; @@ -23,6 +12,17 @@ import org.opencv.core.Size; import org.opencv.imgproc.Imgproc; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + import javafx.application.Platform; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -66,7 +66,7 @@ private void startTimer() { @Override protected void fillGrid(GridPane mainGrid) { - double displaySizeReduction = 1.5; + double displaySizeReduction = 1; for (int col = 0; col < imageViews.length; col++) for (int row = 0; row < imageViews[col].length; row++) { ImageView imageView = new ImageView(); @@ -135,7 +135,7 @@ private Image[] doWork() { adaptive.release(); ref = trace("Adaptive FHT", ref); - List magnitudes = RadonTransform.bestTrajectFHT(houghTransform, 11, -50); + List magnitudes = RadonTransform.bestTrajectFHT(houghTransform, 11, -1); // for (int y = 0; y < magnitudes.size(); y++) { // if (magnitudes.get(y).magnitude <= 1) // for (int end = y + 1; end < magnitudes.size(); end++) { diff --git a/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo3.java b/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo3.java index f084a8bce..4ac0ea7a8 100644 --- a/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo3.java +++ b/gs-cv/src/main/java/org/genericsystem/cv/application/RadonTransformDemo3.java @@ -1,13 +1,5 @@ package org.genericsystem.cv.application; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - import org.genericsystem.cv.AbstractApp; import org.genericsystem.cv.Img; import org.genericsystem.cv.application.GeneralInterpolator.OrientedPoint; @@ -20,6 +12,14 @@ import org.opencv.core.Size; import org.opencv.imgproc.Imgproc; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + import javafx.application.Platform; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -123,8 +123,8 @@ private Image[] doWork() { hHoughs.stream().forEach(projectionMap -> Core.normalize(projectionMap, projectionMap, 0, 1, Core.NORM_MINMAX)); ref = trace("Compute FHT", ref); - List> vHoughTrajs = vHoughs.stream().map(projectionMap -> RadonTransform.bestTrajectFHT(projectionMap, 11, -10)).collect(Collectors.toList()); - List> hHoughTrajs = hHoughs.stream().map(projectionMap -> RadonTransform.bestTrajectFHT(projectionMap, 11, -10)).collect(Collectors.toList()); + List> vHoughTrajs = vHoughs.stream().map(projectionMap -> RadonTransform.bestTrajectFHT(projectionMap, 11, -0.1)).collect(Collectors.toList()); + List> hHoughTrajs = hHoughs.stream().map(projectionMap -> RadonTransform.bestTrajectFHT(projectionMap, 11, -0.1)).collect(Collectors.toList()); ref = trace("Compute trajects", ref); List fhtHorizontals = new ArrayList<>();