diff --git a/modules/java/android_test/src/org/opencv/test/core/coreTest.java b/modules/java/android_test/src/org/opencv/test/core/coreTest.java index 2207f8fbb082f64014c7c7a1e4b3a6c817b25e74..213211f26b43bb215d0a5026cd6ef1a4ddb2925c 100644 --- a/modules/java/android_test/src/org/opencv/test/core/coreTest.java +++ b/modules/java/android_test/src/org/opencv/test/core/coreTest.java @@ -1243,15 +1243,55 @@ public class coreTest extends OpenCVTestCase { } public void testPolylinesMatListOfMatBooleanScalar() { - fail("Not yet implemented"); + Mat img = gray0; + List pts = new ArrayList(); + pts.add(new Point(1, 1)); + pts.add(new Point(7, 1)); + pts.add(new Point(7, 6)); + pts.add(new Point(1, 6)); + List mats = new ArrayList(); + mats.add( Converters.vector_Point_to_Mat(pts) ); + + assertEquals(0, Core.countNonZero(img)); + Core.polylines(img, mats, true, new Scalar(100)); + assertEquals(22, Core.countNonZero(img)); + Core.polylines(img, mats, false, new Scalar(0)); + assertEquals(4, Core.countNonZero(img)); } public void testPolylinesMatListOfMatBooleanScalarInt() { - fail("Not yet implemented"); + Mat img = gray0; + List pts = new ArrayList(); + pts.add(new Point(1, 1)); + pts.add(new Point(7, 1)); + pts.add(new Point(7, 6)); + pts.add(new Point(1, 6)); + List mats = new ArrayList(); + mats.add( Converters.vector_Point_to_Mat(pts) ); + + assertEquals(0, Core.countNonZero(img)); + Core.polylines(img, mats, true, new Scalar(100), 2); + assertEquals(62, Core.countNonZero(img)); } public void testPolylinesMatListOfMatBooleanScalarIntInt() { - fail("Not yet implemented"); + Mat img = gray0; + List pts = new ArrayList(); + List pts2 = new ArrayList(); + pts.add(new Point(1, 1)); pts2.add(new Point(2, 2)); + pts.add(new Point(7, 1)); pts2.add(new Point(14, 2)); + pts.add(new Point(7, 6)); pts2.add(new Point(14, 12)); + pts.add(new Point(1, 6)); pts2.add(new Point(2, 12)); + List mats = new ArrayList(); + List mats2 = new ArrayList(); + mats.add( Converters.vector_Point_to_Mat(pts) ); + mats2.add( Converters.vector_Point_to_Mat(pts2) ); + + assertTrue(0 == Core.countNonZero(img)); + Core.polylines(img, mats, true, new Scalar(100), 2, 8, 0); + assertFalse(0 == Core.countNonZero(img)); + Core.polylines(img, mats2, true, new Scalar(0), 2, 8, 1); + assertTrue(0 == Core.countNonZero(img)); } public void testPolylinesMatListOfMatBooleanScalarIntIntInt() { diff --git a/modules/java/android_test/src/org/opencv/test/imgproc/imgprocTest.java b/modules/java/android_test/src/org/opencv/test/imgproc/imgprocTest.java index 0b3d4f31e6325a6ae2e386ce0270d1bade6564db..60a2746cba1421c7f8b9f8167ed01fa386b6c7c6 100644 --- a/modules/java/android_test/src/org/opencv/test/imgproc/imgprocTest.java +++ b/modules/java/android_test/src/org/opencv/test/imgproc/imgprocTest.java @@ -14,6 +14,7 @@ import org.opencv.core.Size; import org.opencv.imgproc.Imgproc; import org.opencv.test.OpenCVTestCase; + public class imgprocTest extends OpenCVTestCase { private Mat gray_64f_2; @@ -1000,29 +1001,58 @@ public class imgprocTest extends OpenCVTestCase { } public void testGoodFeaturesToTrackMatMatIntDoubleDouble() { - Mat src = new Mat(matSize, matSize, CvType.CV_32FC1, new Scalar(2.0)); - Mat corners = new Mat(1, 4, CvType.CV_32FC2); - corners.put(0, 0, 1.0, 1.0, 6.0, 1.0, 6.0, 1.0, 6.0, 6.0); + Mat src = gray0; + Core.rectangle(src, new Point(2, 2), new Point(8, 8), new Scalar(100), -1); + List lp = new ArrayList(); - Imgproc.goodFeaturesToTrack(src, dst, 100, 0.01, 5.0); - // TODO : How do we test this? - fail("Not yet implemented"); + Imgproc.goodFeaturesToTrack(src, lp, 100, 0.01, 3); + + assertEquals(4, lp.size()); } public void testGoodFeaturesToTrackMatMatIntDoubleDoubleMat() { - fail("Not yet implemented"); + Mat src = gray128; + Point tl = new Point(2, 2); + Point br = new Point(8, 8); + Scalar color = new Scalar(100); + Core.rectangle(src, tl, br, color, -1); + Mat mask = gray0; + Core.circle(mask, tl, 3, color, -1); + List lp = new ArrayList(); + + Imgproc.goodFeaturesToTrack(src, lp, 100, 0.01, 3, mask); + + assertEquals(1, lp.size()); } public void testGoodFeaturesToTrackMatMatIntDoubleDoubleMatInt() { - fail("Not yet implemented"); + Mat src = gray0; + Core.rectangle(src, new Point(2, 2), new Point(8, 8), new Scalar(100), -1); + List lp = new ArrayList(); + + Imgproc.goodFeaturesToTrack(src, lp, 100, 0.01, 3, gray1, 4); + + assertEquals(4, lp.size()); } public void testGoodFeaturesToTrackMatMatIntDoubleDoubleMatIntBoolean() { - fail("Not yet implemented"); + Mat src = gray0; + Core.rectangle(src, new Point(2, 2), new Point(8, 8), new Scalar(100), -1); + List lp = new ArrayList(); + + Imgproc.goodFeaturesToTrack(src, lp, 100, 0.01, 3, gray1, 4, true); + + assertEquals(4, lp.size()); } public void testGoodFeaturesToTrackMatMatIntDoubleDoubleMatIntBooleanDouble() { - fail("Not yet implemented"); + Mat src = gray0; + Core.rectangle(src, new Point(2, 2), new Point(8, 8), new Scalar(100), -1); + List lp = new ArrayList(); + + Imgproc.goodFeaturesToTrack(src, lp, 100, 0.01, 3, gray1, 4, true, 0); + + assertEquals(4, lp.size()); } public void testGrabCutMatMatRectMatMatInt() { diff --git a/modules/java/gen_java.py b/modules/java/gen_java.py index a580ded9faf74ee84382fad7321831b99ed29737..a90c0547b9011268d56f11d8a65279b7a3ad338a 100644 --- a/modules/java/gen_java.py +++ b/modules/java/gen_java.py @@ -457,6 +457,7 @@ func_arg_fix = { 'randu' : { 'low' : 'Scalar', 'high' : 'Scalar', }, 'randn' : { 'mean' : 'Scalar', 'stddev' : 'Scalar', }, 'inRange' : { 'lowerb' : 'Scalar', 'upperb' : 'Scalar', }, + 'goodFeaturesToTrack' : { 'corners' : 'vector_Point' }, }, # '', i.e. empty class } # func_arg_fix