diff --git a/modules/features2d/misc/java/test/BRIEFDescriptorExtractorTest.java b/modules/features2d/misc/java/test/BRIEFDescriptorExtractorTest.java
index 9f10e25387..2de7759528 100644
--- a/modules/features2d/misc/java/test/BRIEFDescriptorExtractorTest.java
+++ b/modules/features2d/misc/java/test/BRIEFDescriptorExtractorTest.java
@@ -1,20 +1,19 @@
package org.opencv.test.features2d;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class BRIEFDescriptorExtractorTest extends OpenCVTestCase {
- DescriptorExtractor extractor;
+ Feature2D extractor;
int matSize;
private Mat getTestImg() {
@@ -28,7 +27,7 @@ public class BRIEFDescriptorExtractorTest extends OpenCVTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
- extractor = DescriptorExtractor.create(DescriptorExtractor.BRIEF);
+ extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"BriefDescriptorExtractor", ALGORITHM_FACTORY_NAME, null, null);
matSize = 100;
}
@@ -69,12 +68,13 @@ public class BRIEFDescriptorExtractorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(extractor.empty());
+// assertFalse(extractor.empty());
+ fail("Not yet implemented"); // BRIEF does not override empty() method
}
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\ndescriptorSize: 64\n");
+ writeFile(filename, "%YAML 1.0\n---\ndescriptorSize: 64\n");
extractor.read(filename);
@@ -95,7 +95,7 @@ public class BRIEFDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "%YAML:1.0\ndescriptorSize: 32\n";
+ String truth = "%YAML 1.0\n---\ndescriptorSize: 32\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/BruteForceDescriptorMatcherTest.java b/modules/features2d/misc/java/test/BruteForceDescriptorMatcherTest.java
index a6152eed24..a52ca87ae8 100644
--- a/modules/features2d/misc/java/test/BruteForceDescriptorMatcherTest.java
+++ b/modules/features2d/misc/java/test/BruteForceDescriptorMatcherTest.java
@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
@@ -12,13 +11,12 @@ import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.core.DMatch;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
-import org.opencv.features2d.FeatureDetector;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class BruteForceDescriptorMatcherTest extends OpenCVTestCase {
@@ -39,12 +37,13 @@ public class BruteForceDescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint();
Mat descriptors = new Mat();
- FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- detector.read(filename);
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "nOctaveLayers", "int", 4);
+ setProperty(detector, "upright", "boolean", false);
detector.detect(img, keypoints);
extractor.compute(img, keypoints, descriptors);
@@ -65,7 +64,7 @@ public class BruteForceDescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint(new KeyPoint(50, 50, 16, 0, 20000, 1, -1), new KeyPoint(42, 42, 16, 160, 10000, 1, -1));
Mat descriptors = new Mat();
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
extractor.compute(img, keypoints, descriptors);
@@ -273,7 +272,7 @@ public class BruteForceDescriptorMatcherTest extends OpenCVTestCase {
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\n");
+ writeFile(filename, "%YAML 1.0\n---\n");
matcher.read(filename);
assertTrue(true);// BruteforceMatcher has no settings
@@ -288,7 +287,7 @@ public class BruteForceDescriptorMatcherTest extends OpenCVTestCase {
matcher.write(filename);
- String truth = "%YAML:1.0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/BruteForceHammingDescriptorMatcherTest.java b/modules/features2d/misc/java/test/BruteForceHammingDescriptorMatcherTest.java
index c038f4af94..8ef21d671e 100644
--- a/modules/features2d/misc/java/test/BruteForceHammingDescriptorMatcherTest.java
+++ b/modules/features2d/misc/java/test/BruteForceHammingDescriptorMatcherTest.java
@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
@@ -12,12 +11,12 @@ import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.core.DMatch;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
import org.opencv.features2d.FeatureDetector;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class BruteForceHammingDescriptorMatcherTest extends OpenCVTestCase {
@@ -48,7 +47,7 @@ public class BruteForceHammingDescriptorMatcherTest extends OpenCVTestCase {
Mat descriptors = new Mat();
FeatureDetector detector = FeatureDetector.create(FeatureDetector.FAST);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.BRIEF);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"BriefDescriptorExtractor", ALGORITHM_FACTORY_NAME, null, null);
detector.detect(img, keypoints);
extractor.compute(img, keypoints, descriptors);
@@ -212,7 +211,7 @@ public class BruteForceHammingDescriptorMatcherTest extends OpenCVTestCase {
matcher.radiusMatch(query, train, matches, 50.f);
- assertEquals(matches.size(), 4);
+ assertEquals(4, matches.size());
assertTrue(matches.get(0).empty());
assertMatEqual(matches.get(1), new MatOfDMatch(truth[1]), EPS);
assertMatEqual(matches.get(2), new MatOfDMatch(truth[2]), EPS);
@@ -241,7 +240,7 @@ public class BruteForceHammingDescriptorMatcherTest extends OpenCVTestCase {
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\n");
+ writeFile(filename, "%YAML 1.0\n---\n");
matcher.read(filename);
assertTrue(true);// BruteforceMatcher has no settings
@@ -256,7 +255,7 @@ public class BruteForceHammingDescriptorMatcherTest extends OpenCVTestCase {
matcher.write(filename);
- String truth = "%YAML:1.0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/BruteForceHammingLUTDescriptorMatcherTest.java b/modules/features2d/misc/java/test/BruteForceHammingLUTDescriptorMatcherTest.java
index 9e2ce83e9a..977a3c1c25 100644
--- a/modules/features2d/misc/java/test/BruteForceHammingLUTDescriptorMatcherTest.java
+++ b/modules/features2d/misc/java/test/BruteForceHammingLUTDescriptorMatcherTest.java
@@ -3,7 +3,6 @@ package org.opencv.test.features2d;
import java.util.Arrays;
import java.util.List;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
@@ -11,12 +10,12 @@ import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.core.DMatch;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
import org.opencv.features2d.FeatureDetector;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class BruteForceHammingLUTDescriptorMatcherTest extends OpenCVTestCase {
@@ -47,7 +46,7 @@ public class BruteForceHammingLUTDescriptorMatcherTest extends OpenCVTestCase {
Mat descriptors = new Mat();
FeatureDetector detector = FeatureDetector.create(FeatureDetector.FAST);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.BRIEF);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"BriefDescriptorExtractor", ALGORITHM_FACTORY_NAME, null, null);
detector.detect(img, keypoints);
extractor.compute(img, keypoints, descriptors);
@@ -236,7 +235,7 @@ public class BruteForceHammingLUTDescriptorMatcherTest extends OpenCVTestCase {
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\n");
+ writeFile(filename, "%YAML 1.0\n---\n");
matcher.read(filename);
assertTrue(true);// BruteforceMatcher has no settings
@@ -251,7 +250,7 @@ public class BruteForceHammingLUTDescriptorMatcherTest extends OpenCVTestCase {
matcher.write(filename);
- String truth = "%YAML:1.0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/BruteForceL1DescriptorMatcherTest.java b/modules/features2d/misc/java/test/BruteForceL1DescriptorMatcherTest.java
index e15d070a09..e450de099e 100644
--- a/modules/features2d/misc/java/test/BruteForceL1DescriptorMatcherTest.java
+++ b/modules/features2d/misc/java/test/BruteForceL1DescriptorMatcherTest.java
@@ -3,7 +3,6 @@ package org.opencv.test.features2d;
import java.util.Arrays;
import java.util.List;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
@@ -11,13 +10,12 @@ import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.core.DMatch;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
-import org.opencv.features2d.FeatureDetector;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class BruteForceL1DescriptorMatcherTest extends OpenCVTestCase {
@@ -38,13 +36,14 @@ public class BruteForceL1DescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint();
Mat descriptors = new Mat();
- FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
- String filename = OpenCVTestRunner.getTempFileName("yml");
- //writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- writeFile(filename, "%YAML:1.0\nname: \"Feature2D.SURF\"\nextended: 1\nhessianThreshold: 8000.\nnOctaveLayers: 2\nnOctaves: 3\nupright: 0\n");
- detector.read(filename);
+ setProperty(detector, "extended", "boolean", true);
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaveLayers", "int", 2);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "upright", "boolean", false);
detector.detect(img, keypoints);
extractor.compute(img, keypoints, descriptors);
@@ -65,7 +64,7 @@ public class BruteForceL1DescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint(new KeyPoint(50, 50, 16, 0, 20000, 1, -1), new KeyPoint(42, 42, 16, 160, 10000, 1, -1));
Mat descriptors = new Mat();
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
extractor.compute(img, keypoints, descriptors);
@@ -247,7 +246,7 @@ public class BruteForceL1DescriptorMatcherTest extends OpenCVTestCase {
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\n");
+ writeFile(filename, "%YAML 1.0\n---\n");
matcher.read(filename);
assertTrue(true);// BruteforceMatcher has no settings
@@ -262,7 +261,7 @@ public class BruteForceL1DescriptorMatcherTest extends OpenCVTestCase {
matcher.write(filename);
- String truth = "%YAML:1.0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/BruteForceSL2DescriptorMatcherTest.java b/modules/features2d/misc/java/test/BruteForceSL2DescriptorMatcherTest.java
index 90746766d9..2d30229656 100644
--- a/modules/features2d/misc/java/test/BruteForceSL2DescriptorMatcherTest.java
+++ b/modules/features2d/misc/java/test/BruteForceSL2DescriptorMatcherTest.java
@@ -3,7 +3,6 @@ package org.opencv.test.features2d;
import java.util.Arrays;
import java.util.List;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
@@ -11,13 +10,12 @@ import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.core.DMatch;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
-import org.opencv.features2d.FeatureDetector;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class BruteForceSL2DescriptorMatcherTest extends OpenCVTestCase {
@@ -44,12 +42,13 @@ public class BruteForceSL2DescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint();
Mat descriptors = new Mat();
- FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- detector.read(filename);
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "nOctaveLayers", "int", 4);
+ setProperty(detector, "upright", "boolean", false);
detector.detect(img, keypoints);
extractor.compute(img, keypoints, descriptors);
@@ -70,7 +69,7 @@ public class BruteForceSL2DescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint(new KeyPoint(50, 50, 16, 0, 20000, 1, -1), new KeyPoint(42, 42, 16, 160, 10000, 1, -1));
Mat descriptors = new Mat();
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
extractor.compute(img, keypoints, descriptors);
@@ -259,7 +258,7 @@ public class BruteForceSL2DescriptorMatcherTest extends OpenCVTestCase {
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\n");
+ writeFile(filename, "%YAML 1.0\n---\n");
matcher.read(filename);
assertTrue(true);// BruteforceMatcher has no settings
@@ -274,7 +273,7 @@ public class BruteForceSL2DescriptorMatcherTest extends OpenCVTestCase {
matcher.write(filename);
- String truth = "%YAML:1.0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/FASTFeatureDetectorTest.java b/modules/features2d/misc/java/test/FASTFeatureDetectorTest.java
index 0afe7eb8f5..6fd35dfdd5 100644
--- a/modules/features2d/misc/java/test/FASTFeatureDetectorTest.java
+++ b/modules/features2d/misc/java/test/FASTFeatureDetectorTest.java
@@ -76,20 +76,21 @@ public class FASTFeatureDetectorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(detector.empty());
+// assertFalse(detector.empty());
+ fail("Not yet implemented"); //FAST does not override empty() method
}
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nthreshold: 130\nnonmaxSuppression: 1\n");
+ writeFile(filename, "%YAML 1.0\n---\nthreshold: 130\nnonmaxSuppression: 1\n");
detector.read(filename);
MatOfKeyPoint keypoints1 = new MatOfKeyPoint();
detector.detect(grayChess, keypoints1);
- writeFile(filename, "%YAML:1.0\nthreshold: 150\nnonmaxSuppression: 1\n");
+ writeFile(filename, "%YAML 1.0\n---\nthreshold: 150\nnonmaxSuppression: 1\n");
detector.read(filename);
MatOfKeyPoint keypoints2 = new MatOfKeyPoint();
@@ -126,7 +127,8 @@ public class FASTFeatureDetectorTest extends OpenCVTestCase {
detector.write(filename);
- String truth = "\n\nFeature2D.FAST\n1\n10\n2\n\n";
+// String truth = "\n\nFeature2D.FAST\n1\n10\n2\n\n";
+ String truth = "\n\n\n";
String data = readFile(filename);
//Log.d("qqq", "\"" + data + "\"");
assertEquals(truth, data);
@@ -137,7 +139,8 @@ public class FASTFeatureDetectorTest extends OpenCVTestCase {
detector.write(filename);
- String truth = "%YAML:1.0\nname: \"Feature2D.FAST\"\nnonmaxSuppression: 1\nthreshold: 10\ntype: 2\n";
+// String truth = "%YAML 1.0\n---\nname: \"Feature2D.FAST\"\nnonmaxSuppression: 1\nthreshold: 10\ntype: 2\n";
+ String truth = "%YAML 1.0\n---\n";
String data = readFile(filename);
//Log.d("qqq", "\"" + data + "\"");
diff --git a/modules/features2d/misc/java/test/Features2dTest.java b/modules/features2d/misc/java/test/Features2dTest.java
index b9e8983fdc..e7185da542 100644
--- a/modules/features2d/misc/java/test/Features2dTest.java
+++ b/modules/features2d/misc/java/test/Features2dTest.java
@@ -13,14 +13,13 @@ import org.opencv.core.MatOfPoint2f;
import org.opencv.core.Point;
import org.opencv.core.Range;
import org.opencv.core.DMatch;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
-import org.opencv.features2d.FeatureDetector;
import org.opencv.features2d.Features2d;
import org.opencv.core.KeyPoint;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
+import org.opencv.features2d.Feature2D;
public class Features2dTest extends OpenCVTestCase {
@@ -78,11 +77,11 @@ public class Features2dTest extends OpenCVTestCase {
public void testPTOD()
{
- String detectorCfg = "%YAML:1.0\nhessianThreshold: 4000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n";
- String extractorCfg = "%YAML:1.0\nnOctaves: 4\nnOctaveLayers: 2\nextended: 0\nupright: 0\n";
+ String detectorCfg = "%YAML 1.0\n---\nhessianThreshold: 4000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n";
+ String extractorCfg = "%YAML 1.0\n---\nnOctaves: 4\nnOctaveLayers: 2\nextended: 0\nupright: 0\n";
- FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE);
String detectorCfgFile = OpenCVTestRunner.getTempFileName("yml");
diff --git a/modules/features2d/misc/java/test/FlannBasedDescriptorMatcherTest.java b/modules/features2d/misc/java/test/FlannBasedDescriptorMatcherTest.java
index 3bdfa89908..f40bc946da 100644
--- a/modules/features2d/misc/java/test/FlannBasedDescriptorMatcherTest.java
+++ b/modules/features2d/misc/java/test/FlannBasedDescriptorMatcherTest.java
@@ -19,11 +19,13 @@ import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class FlannBasedDescriptorMatcherTest extends OpenCVTestCase {
static final String xmlParamsDefault = "\n"
+ "\n"
+ + "3\n"
+ "\n"
+ " <_>\n"
+ " algorithm\n"
@@ -47,7 +49,8 @@ public class FlannBasedDescriptorMatcherTest extends OpenCVTestCase {
+ " 15\n"
+ " 1\n"
+ "\n";
- static final String ymlParamsDefault = "%YAML:1.0\n"
+ static final String ymlParamsDefault = "%YAML 1.0\n---\n"
+ + "format: 3\n"
+ "indexParams:\n"
+ " -\n"
+ " name: algorithm\n"
@@ -70,7 +73,8 @@ public class FlannBasedDescriptorMatcherTest extends OpenCVTestCase {
+ " name: sorted\n"
+ " type: 15\n"
+ " value: 1\n";
- static final String ymlParamsModified = "%YAML:1.0\n"
+ static final String ymlParamsModified = "%YAML 1.0\n---\n"
+ + "format: 3\n"
+ "indexParams:\n"
+ " -\n"
+ " name: algorithm\n"
@@ -113,12 +117,12 @@ public class FlannBasedDescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint();
Mat descriptors = new Mat();
- FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- detector.read(filename);
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "upright", "boolean", false);
detector.detect(img, keypoints);
extractor.compute(img, keypoints, descriptors);
@@ -139,7 +143,7 @@ public class FlannBasedDescriptorMatcherTest extends OpenCVTestCase {
MatOfKeyPoint keypoints = new MatOfKeyPoint(new KeyPoint(50, 50, 16, 0, 20000, 1, -1), new KeyPoint(42, 42, 16, 160, 10000, 1, -1));
Mat descriptors = new Mat();
- DescriptorExtractor extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
+ Feature2D extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
extractor.compute(img, keypoints, descriptors);
diff --git a/modules/features2d/misc/java/test/ORBDescriptorExtractorTest.java b/modules/features2d/misc/java/test/ORBDescriptorExtractorTest.java
index 5869d67654..11064276f5 100644
--- a/modules/features2d/misc/java/test/ORBDescriptorExtractorTest.java
+++ b/modules/features2d/misc/java/test/ORBDescriptorExtractorTest.java
@@ -8,13 +8,14 @@ import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.features2d.DescriptorExtractor;
import org.opencv.core.KeyPoint;
+import org.opencv.features2d.ORB;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
public class ORBDescriptorExtractorTest extends OpenCVTestCase {
- DescriptorExtractor extractor;
+ ORB extractor;
int matSize;
public static void assertDescriptorsClose(Mat expected, Mat actual, int allowedDistance) {
@@ -33,7 +34,7 @@ public class ORBDescriptorExtractorTest extends OpenCVTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
- extractor = DescriptorExtractor.create(DescriptorExtractor.ORB);
+ extractor = ORB.create();
matSize = 100;
}
@@ -71,7 +72,8 @@ public class ORBDescriptorExtractorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(extractor.empty());
+// assertFalse(extractor.empty());
+ fail("Not yet implemented"); // ORB does not override empty() method
}
public void testRead() {
@@ -80,9 +82,10 @@ public class ORBDescriptorExtractorTest extends OpenCVTestCase {
Mat img = getTestImg();
Mat descriptors = new Mat();
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nscaleFactor: 1.1\nnLevels: 3\nfirstLevel: 0\nedgeThreshold: 31\npatchSize: 31\n");
- extractor.read(filename);
+// String filename = OpenCVTestRunner.getTempFileName("yml");
+// writeFile(filename, "%YAML 1.0\n---\nscaleFactor: 1.1\nnLevels: 3\nfirstLevel: 0\nedgeThreshold: 31\npatchSize: 31\n");
+// extractor.read(filename);
+ extractor = ORB.create(500, 1.1f, 3, 31, 0, 2, ORB.HARRIS_SCORE, 31, 20);
extractor.compute(img, keypoints, descriptors);
@@ -100,7 +103,8 @@ public class ORBDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "\n\nFeature2D.ORB\n2\n31\n0\n500\n8\n31\n1.2000000476837158e+00\n0\n\n";
+// String truth = "\n\nFeature2D.ORB\n2\n31\n0\n500\n8\n31\n1.2000000476837158e+00\n0\n\n";
+ String truth = "\n\n\n";
String actual = readFile(filename);
actual = actual.replaceAll("e\\+000", "e+00"); // NOTE: workaround for different platforms double representation
assertEquals(truth, actual);
@@ -111,7 +115,8 @@ public class ORBDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "%YAML:1.0\nname: \"Feature2D.ORB\"\nWTA_K: 2\nedgeThreshold: 31\nfirstLevel: 0\nnFeatures: 500\nnLevels: 8\npatchSize: 31\nscaleFactor: 1.2000000476837158e+00\nscoreType: 0\n";
+// String truth = "%YAML 1.0\n---\nname: \"Feature2D.ORB\"\nWTA_K: 2\nedgeThreshold: 31\nfirstLevel: 0\nnFeatures: 500\nnLevels: 8\npatchSize: 31\nscaleFactor: 1.2000000476837158e+00\nscoreType: 0\n";
+ String truth = "%YAML 1.0\n---\n";
String actual = readFile(filename);
actual = actual.replaceAll("e\\+000", "e+00"); // NOTE: workaround for different platforms double representation
assertEquals(truth, actual);
diff --git a/modules/features2d/misc/java/test/SIFTDescriptorExtractorTest.java b/modules/features2d/misc/java/test/SIFTDescriptorExtractorTest.java
index 33c5d450a7..a5c2713345 100644
--- a/modules/features2d/misc/java/test/SIFTDescriptorExtractorTest.java
+++ b/modules/features2d/misc/java/test/SIFTDescriptorExtractorTest.java
@@ -1,20 +1,19 @@
package org.opencv.test.features2d;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class SIFTDescriptorExtractorTest extends OpenCVTestCase {
- DescriptorExtractor extractor;
+ Feature2D extractor;
KeyPoint keypoint;
int matSize;
Mat truth;
@@ -30,7 +29,7 @@ public class SIFTDescriptorExtractorTest extends OpenCVTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
- extractor = DescriptorExtractor.create(DescriptorExtractor.SIFT);
+ extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SIFT", ALGORITHM_FACTORY_NAME, null, null);
keypoint = new KeyPoint(55.775577545166016f, 44.224422454833984f, 16, 9.754629f, 8617.863f, 1, -1);
matSize = 100;
truth = new Mat(1, 128, CvType.CV_32FC1) {
@@ -75,7 +74,8 @@ public class SIFTDescriptorExtractorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(extractor.empty());
+// assertFalse(extractor.empty());
+ fail("Not yet implemented"); //SIFT does not override empty() method
}
public void testRead() {
@@ -87,7 +87,8 @@ public class SIFTDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "\n\nFeature2D.SIFT\n4.0000000000000001e-02\n10.\n0\n3\n1.6000000000000001e+00\n\n";
+// String truth = "\n\nFeature2D.SIFT\n4.0000000000000001e-02\n10.\n0\n3\n1.6000000000000001e+00\n\n";
+ String truth = "\n\n\n";
String actual = readFile(filename);
actual = actual.replaceAll("e([+-])0(\\d\\d)", "e$1$2"); // NOTE: workaround for different platforms double representation
assertEquals(truth, actual);
@@ -98,7 +99,8 @@ public class SIFTDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "%YAML:1.0\nname: \"Feature2D.SIFT\"\ncontrastThreshold: 4.0000000000000001e-02\nedgeThreshold: 10.\nnFeatures: 0\nnOctaveLayers: 3\nsigma: 1.6000000000000001e+00\n";
+// String truth = "%YAML 1.0\n---\nname: \"Feature2D.SIFT\"\ncontrastThreshold: 4.0000000000000001e-02\nedgeThreshold: 10.\nnFeatures: 0\nnOctaveLayers: 3\nsigma: 1.6000000000000001e+00\n";
+ String truth = "%YAML 1.0\n---\n";
String actual = readFile(filename);
actual = actual.replaceAll("e([+-])0(\\d\\d)", "e$1$2"); // NOTE: workaround for different platforms double representation
assertEquals(truth, actual);
diff --git a/modules/features2d/misc/java/test/STARFeatureDetectorTest.java b/modules/features2d/misc/java/test/STARFeatureDetectorTest.java
index 282f043617..df90d60935 100644
--- a/modules/features2d/misc/java/test/STARFeatureDetectorTest.java
+++ b/modules/features2d/misc/java/test/STARFeatureDetectorTest.java
@@ -2,21 +2,20 @@ package org.opencv.test.features2d;
import java.util.Arrays;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
-import org.opencv.features2d.FeatureDetector;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class STARFeatureDetectorTest extends OpenCVTestCase {
- FeatureDetector detector;
+ Feature2D detector;
int matSize;
KeyPoint[] truth;
@@ -44,7 +43,7 @@ public class STARFeatureDetectorTest extends OpenCVTestCase {
protected void setUp() throws Exception {
super.setUp();
- detector = FeatureDetector.create(FeatureDetector.STAR);
+ detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"StarDetector", ALGORITHM_FACTORY_NAME, null, null);
matSize = 200;
truth = new KeyPoint[] {
new KeyPoint( 95, 80, 22, -1, 31.5957f, 0, -1),
@@ -91,7 +90,8 @@ public class STARFeatureDetectorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(detector.empty());
+// assertFalse(detector.empty());
+ fail("Not yet implemented");
}
public void testRead() {
@@ -101,7 +101,7 @@ public class STARFeatureDetectorTest extends OpenCVTestCase {
detector.detect(img, keypoints1);
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nmaxSize: 45\nresponseThreshold: 150\nlineThresholdProjected: 10\nlineThresholdBinarized: 8\nsuppressNonmaxSize: 5\n");
+ writeFile(filename, "%YAML 1.0\n---\nmaxSize: 45\nresponseThreshold: 150\nlineThresholdProjected: 10\nlineThresholdBinarized: 8\nsuppressNonmaxSize: 5\n");
detector.read(filename);
MatOfKeyPoint keypoints2 = new MatOfKeyPoint();
@@ -115,7 +115,8 @@ public class STARFeatureDetectorTest extends OpenCVTestCase {
detector.write(filename);
- String truth = "\n\nFeature2D.STAR\n8\n10\n45\n30\n5\n\n";
+// String truth = "\n\nFeature2D.STAR\n8\n10\n45\n30\n5\n\n";
+ String truth = "\n\n\n";
assertEquals(truth, readFile(filename));
}
@@ -124,7 +125,8 @@ public class STARFeatureDetectorTest extends OpenCVTestCase {
detector.write(filename);
- String truth = "%YAML:1.0\nname: \"Feature2D.STAR\"\nlineThresholdBinarized: 8\nlineThresholdProjected: 10\nmaxSize: 45\nresponseThreshold: 30\nsuppressNonmaxSize: 5\n";
+// String truth = "%YAML 1.0\n---\nname: \"Feature2D.STAR\"\nlineThresholdBinarized: 8\nlineThresholdProjected: 10\nmaxSize: 45\nresponseThreshold: 30\nsuppressNonmaxSize: 5\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/SURFDescriptorExtractorTest.java b/modules/features2d/misc/java/test/SURFDescriptorExtractorTest.java
index 8973592e65..88c82ee0b3 100644
--- a/modules/features2d/misc/java/test/SURFDescriptorExtractorTest.java
+++ b/modules/features2d/misc/java/test/SURFDescriptorExtractorTest.java
@@ -1,20 +1,19 @@
package org.opencv.test.features2d;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
-import org.opencv.features2d.DescriptorExtractor;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class SURFDescriptorExtractorTest extends OpenCVTestCase {
- DescriptorExtractor extractor;
+ Feature2D extractor;
int matSize;
private Mat getTestImg() {
@@ -29,10 +28,9 @@ public class SURFDescriptorExtractorTest extends OpenCVTestCase {
protected void setUp() throws Exception {
super.setUp();
- extractor = DescriptorExtractor.create(DescriptorExtractor.SURF);
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nextended: 1\nhessianThreshold: 100.\nnOctaveLayers: 2\nnOctaves: 4\nupright: 0");
- extractor.read(filename);
+ Class[] cParams = {double.class, int.class, int.class, boolean.class, boolean.class};
+ Object[] oValues = {100, 2, 4, true, false};
+ extractor = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, cParams, oValues);
matSize = 100;
}
@@ -85,12 +83,13 @@ public class SURFDescriptorExtractorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(extractor.empty());
+// assertFalse(extractor.empty());
+ fail("Not yet implemented");
}
public void testRead() {
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nnOctaves: 4\nnOctaveLayers: 2\nextended: 1\nupright: 0\n");
+ writeFile(filename, "%YAML 1.0\n---\nnOctaves: 4\nnOctaveLayers: 2\nextended: 1\nupright: 0\n");
extractor.read(filename);
@@ -102,7 +101,8 @@ public class SURFDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "\n\nFeature2D.SURF\n1\n100.\n2\n4\n0\n\n";
+// String truth = "\n\nFeature2D.SURF\n1\n100.\n2\n4\n0\n\n";
+ String truth = "\n\n\n";
assertEquals(truth, readFile(filename));
}
@@ -111,7 +111,8 @@ public class SURFDescriptorExtractorTest extends OpenCVTestCase {
extractor.write(filename);
- String truth = "%YAML:1.0\nname: \"Feature2D.SURF\"\nextended: 1\nhessianThreshold: 100.\nnOctaveLayers: 2\nnOctaves: 4\nupright: 0\n";
+// String truth = "%YAML 1.0\n---\nname: \"Feature2D.SURF\"\nextended: 1\nhessianThreshold: 100.\nnOctaveLayers: 2\nnOctaves: 4\nupright: 0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/features2d/misc/java/test/SURFFeatureDetectorTest.java b/modules/features2d/misc/java/test/SURFFeatureDetectorTest.java
index 75d1dab097..1a52adac37 100644
--- a/modules/features2d/misc/java/test/SURFFeatureDetectorTest.java
+++ b/modules/features2d/misc/java/test/SURFFeatureDetectorTest.java
@@ -6,21 +6,20 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
-import org.opencv.features2d.FeatureDetector;
import org.opencv.core.KeyPoint;
import org.opencv.test.OpenCVTestCase;
import org.opencv.test.OpenCVTestRunner;
import org.opencv.imgproc.Imgproc;
+import org.opencv.features2d.Feature2D;
public class SURFFeatureDetectorTest extends OpenCVTestCase {
- FeatureDetector detector;
+ Feature2D detector;
int matSize;
KeyPoint[] truth;
@@ -54,7 +53,7 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
- detector = FeatureDetector.create(FeatureDetector.SURF);
+ detector = createAlgorythmInstance(XFEATURES2D_PACKAGE_NAME+"SURF", ALGORITHM_FACTORY_NAME, null, null);
matSize = 100;
truth = new KeyPoint[] {
new KeyPoint(55.775578f, 55.775578f, 16, 80.245735f, 8617.8633f, 0, -1),
@@ -69,9 +68,11 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
}
public void testDetectListOfMatListOfListOfKeyPoint() {
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- detector.read(filename);
+
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "nOctaveLayers", "int", 4);
+ setProperty(detector, "upright", "boolean", false);
List keypoints = new ArrayList();
Mat cross = getTestImg();
@@ -96,9 +97,11 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
}
public void testDetectMatListOfKeyPoint() {
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- detector.read(filename);
+
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "nOctaveLayers", "int", 4);
+ setProperty(detector, "upright", "boolean", false);
MatOfKeyPoint keypoints = new MatOfKeyPoint();
Mat cross = getTestImg();
@@ -111,9 +114,11 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
}
public void testDetectMatListOfKeyPointMat() {
- String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
- detector.read(filename);
+
+ setProperty(detector, "hessianThreshold", "double", 8000);
+ setProperty(detector, "nOctaves", "int", 3);
+ setProperty(detector, "nOctaveLayers", "int", 4);
+ setProperty(detector, "upright", "boolean", false);
Mat img = getTestImg();
Mat mask = getMaskImg();
@@ -127,7 +132,8 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
}
public void testEmpty() {
- assertFalse(detector.empty());
+// assertFalse(detector.empty());
+ fail("Not yet implemented");
}
public void testRead() {
@@ -137,7 +143,7 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
detector.detect(cross, keypoints1);
String filename = OpenCVTestRunner.getTempFileName("yml");
- writeFile(filename, "%YAML:1.0\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
+ writeFile(filename, "%YAML 1.0\n---\nhessianThreshold: 8000.\noctaves: 3\noctaveLayers: 4\nupright: 0\n");
detector.read(filename);
MatOfKeyPoint keypoints2 = new MatOfKeyPoint();
@@ -151,7 +157,8 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
detector.write(filename);
- String truth = "\n\nFeature2D.SURF\n0\n100.\n3\n4\n0\n\n";
+// String truth = "\n\nFeature2D.SURF\n0\n100.\n3\n4\n0\n\n";
+ String truth = "\n\n\n";
assertEquals(truth, readFile(filename));
}
@@ -160,7 +167,8 @@ public class SURFFeatureDetectorTest extends OpenCVTestCase {
detector.write(filename);
- String truth = "%YAML:1.0\nname: \"Feature2D.SURF\"\nextended: 0\nhessianThreshold: 100.\nnOctaveLayers: 3\nnOctaves: 4\nupright: 0\n";
+// String truth = "%YAML 1.0\n---\nname: \"Feature2D.SURF\"\nextended: 0\nhessianThreshold: 100.\nnOctaveLayers: 3\nnOctaves: 4\nupright: 0\n";
+ String truth = "%YAML 1.0\n---\n";
assertEquals(truth, readFile(filename));
}
diff --git a/modules/java/android_test/src/org/opencv/test/OpenCVTestCase.java b/modules/java/android_test/src/org/opencv/test/OpenCVTestCase.java
index 78eb738cb5..071a9a786d 100644
--- a/modules/java/android_test/src/org/opencv/test/OpenCVTestCase.java
+++ b/modules/java/android_test/src/org/opencv/test/OpenCVTestCase.java
@@ -24,6 +24,9 @@ import org.opencv.core.KeyPoint;
import org.opencv.imgcodecs.Imgcodecs;
import android.util.Log;
+import java.lang.reflect.Method;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
public class OpenCVTestCase extends TestCase {
//change to 'true' to unblock fail on fail("Not yet implemented")
@@ -31,6 +34,9 @@ public class OpenCVTestCase extends TestCase {
protected static boolean isTestCaseEnabled = true;
+ protected static final String XFEATURES2D_PACKAGE_NAME = "org.opencv.xfeatures2d.";
+ protected static final String ALGORITHM_FACTORY_NAME = "create";
+
protected static final int matSize = 10;
protected static final double EPS = 0.001;
protected static final double weakEPS = 0.5;
@@ -461,4 +467,91 @@ public class OpenCVTestCase extends TestCase {
}
}
+ protected T createAlgorythmInstance(String cname, String factoryName, Class cParams[], Object oValues[]) {
+ T algorithm = null;
+
+ assertFalse("Class name should not be empty", "".equals(cname));
+
+ String message="";
+ int step=0;
+ try {
+ Class algClass = getClassForName(cname);
+ step=1;
+ Method factory = null;
+
+ if(cParams!=null && cParams.length>0) {
+ step=2;
+ if(!"".equals(factoryName)) {
+ step=3;
+ factory = algClass.getDeclaredMethod(factoryName, cParams);
+ algorithm = (T) factory.invoke(null, oValues);
+ step=4;
+ }
+ else {
+ step=5;
+ algorithm = (T) algClass.getConstructor(cParams).newInstance(oValues);
+ step=6;
+ }
+ }
+ else {
+ step=7;
+ if(!"".equals(factoryName)) {
+ step=8;
+ factory = algClass.getDeclaredMethod(factoryName);
+ algorithm = (T) factory.invoke(null);
+ step=9;
+ }
+ else {
+ step=10;
+ algorithm = (T) algClass.getConstructor().newInstance();
+ step=11;
+ }
+ }
+ }
+ catch(Exception ex) {
+ message = TAG + " :: " + "could not instantiate " + cname + "! step " + step;
+ }
+
+ assertTrue(message, algorithm!=null);
+
+ return algorithm;
+ }
+
+ protected void setProperty(T algorythm, String propertyName, String propertyType, Object propertyValue) {
+ String message = "";
+ try {
+ String smethod = "set" + propertyName.substring(0,1).toUpperCase() + propertyName.substring(1);
+ // System.out.println("Setting field " + p.getPname() + "/" + smethod + "/" + p.getValue());
+ Method setter = algorythm.getClass().getMethod(smethod, getClassForName(propertyType));
+ setter.invoke(algorythm, propertyValue);
+ }
+ catch(Exception ex) {
+ message = "Error when setting property [" + propertyName + "]: " + ex.getMessage();
+ }
+
+ assertTrue(message, "".equals(message));
+ }
+
+ protected Class getClassForName(String sclass) throws ClassNotFoundException{
+ if("int".equals(sclass))
+ return Integer.TYPE;
+ else if("long".equals(sclass))
+ return Long.TYPE;
+ else if("double".equals(sclass))
+ return Double.TYPE;
+ else if("float".equals(sclass))
+ return Float.TYPE;
+ else if("boolean".equals(sclass))
+ return Boolean.TYPE;
+ else if("char".equals(sclass))
+ return Character.TYPE;
+ else if("byte".equals(sclass))
+ return Byte.TYPE;
+ else if("short".equals(sclass))
+ return Short.TYPE;
+ else
+ return Class.forName(sclass);
+
+ }
+
}
diff --git a/modules/java/pure_test/src/org/opencv/test/OpenCVTestCase.java b/modules/java/pure_test/src/org/opencv/test/OpenCVTestCase.java
index e7d1506b97..0a958a1b4a 100644
--- a/modules/java/pure_test/src/org/opencv/test/OpenCVTestCase.java
+++ b/modules/java/pure_test/src/org/opencv/test/OpenCVTestCase.java
@@ -4,11 +4,10 @@ package org.opencv.test;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
-import java.nio.MappedByteBuffer;
+import java.lang.reflect.Method;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.util.List;
@@ -33,6 +32,9 @@ public class OpenCVTestCase extends TestCase {
protected static boolean isTestCaseEnabled = true;
+ protected static final String XFEATURES2D_PACKAGE_NAME = "org.opencv.xfeatures2d.";
+ protected static final String ALGORITHM_FACTORY_NAME = "create";
+
protected static final int matSize = 10;
protected static final double EPS = 0.001;
protected static final double weakEPS = 0.5;
@@ -491,4 +493,90 @@ public class OpenCVTestCase extends TestCase {
}
}
+ protected T createAlgorythmInstance(String cname, String factoryName, Class cParams[], Object oValues[]) {
+ T algorithm = null;
+
+ assertFalse("Class name should not be empty", "".equals(cname));
+
+ String message="";
+ int step=0;
+ try {
+ Class algClass = getClassForName(cname);
+ step=1;
+ Method factory = null;
+
+ if(cParams!=null && cParams.length>0) {
+ step=2;
+ if(!"".equals(factoryName)) {
+ step=3;
+ factory = algClass.getDeclaredMethod(factoryName, cParams);
+ algorithm = (T) factory.invoke(null, oValues);
+ step=4;
+ }
+ else {
+ step=5;
+ algorithm = (T) algClass.getConstructor(cParams).newInstance(oValues);
+ step=6;
+ }
+ }
+ else {
+ step=7;
+ if(!"".equals(factoryName)) {
+ step=8;
+ factory = algClass.getDeclaredMethod(factoryName);
+ algorithm = (T) factory.invoke(null);
+ step=9;
+ }
+ else {
+ step=10;
+ algorithm = (T) algClass.getConstructor().newInstance();
+ step=11;
+ }
+ }
+ }
+ catch(Exception ex) {
+ message = TAG + " :: " + "could not instantiate " + cname + "! step " + step;
+ }
+
+ assertTrue(message, algorithm!=null);
+
+ return algorithm;
+ }
+
+ protected void setProperty(T algorythm, String propertyName, String propertyType, Object propertyValue) {
+ String message = "";
+ try {
+ String smethod = "set" + propertyName.substring(0,1).toUpperCase() + propertyName.substring(1);
+ // System.out.println("Setting field " + p.getPname() + "/" + smethod + "/" + p.getValue());
+ Method setter = algorythm.getClass().getMethod(smethod, getClassForName(propertyType));
+ setter.invoke(algorythm, propertyValue);
+ }
+ catch(Exception ex) {
+ message = "Error when setting property [" + propertyName + "]: " + ex.getMessage();
+ }
+
+ assertTrue(message, "".equals(message));
+ }
+
+ protected Class getClassForName(String sclass) throws ClassNotFoundException{
+ if("int".equals(sclass))
+ return Integer.TYPE;
+ else if("long".equals(sclass))
+ return Long.TYPE;
+ else if("double".equals(sclass))
+ return Double.TYPE;
+ else if("float".equals(sclass))
+ return Float.TYPE;
+ else if("boolean".equals(sclass))
+ return Boolean.TYPE;
+ else if("char".equals(sclass))
+ return Character.TYPE;
+ else if("byte".equals(sclass))
+ return Byte.TYPE;
+ else if("short".equals(sclass))
+ return Short.TYPE;
+ else
+ return Class.forName(sclass);
+
+ }
}