diff --git a/modules/java/android_test/.classpath b/modules/java/android_test/.classpath new file mode 100644 index 0000000000..927cc0b57d --- /dev/null +++ b/modules/java/android_test/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/modules/java/android_test/.project b/modules/java/android_test/.project new file mode 100644 index 0000000000..01fcaa8b11 --- /dev/null +++ b/modules/java/android_test/.project @@ -0,0 +1,41 @@ + + + OpenCV_Test + + + OpenCVJavaAPI + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + + + OpenCVJavaAPI_src + 2 + _android_OpenCVJavaAPI_583dbd7b/src + + + diff --git a/modules/java/android_test/AndroidManifest.xml b/modules/java/android_test/AndroidManifest.xml new file mode 100644 index 0000000000..aae85eb404 --- /dev/null +++ b/modules/java/android_test/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/modules/java/android_test/default.properties b/modules/java/android_test/default.properties new file mode 100644 index 0000000000..c198130c55 --- /dev/null +++ b/modules/java/android_test/default.properties @@ -0,0 +1,12 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-8 +android.library.reference.1=../android/build diff --git a/modules/java/android_test/res/drawable-hdpi/icon.png b/modules/java/android_test/res/drawable-hdpi/icon.png new file mode 100644 index 0000000000..8074c4c571 Binary files /dev/null and b/modules/java/android_test/res/drawable-hdpi/icon.png differ diff --git a/modules/java/android_test/res/drawable-ldpi/icon.png b/modules/java/android_test/res/drawable-ldpi/icon.png new file mode 100644 index 0000000000..1095584ec2 Binary files /dev/null and b/modules/java/android_test/res/drawable-ldpi/icon.png differ diff --git a/modules/java/android_test/res/drawable-mdpi/icon.png b/modules/java/android_test/res/drawable-mdpi/icon.png new file mode 100644 index 0000000000..a07c69fa5a Binary files /dev/null and b/modules/java/android_test/res/drawable-mdpi/icon.png differ diff --git a/modules/java/android_test/res/layout/main.xml b/modules/java/android_test/res/layout/main.xml new file mode 100644 index 0000000000..3a5f117d3c --- /dev/null +++ b/modules/java/android_test/res/layout/main.xml @@ -0,0 +1,12 @@ + + + + diff --git a/modules/java/android_test/res/values/strings.xml b/modules/java/android_test/res/values/strings.xml new file mode 100644 index 0000000000..f6f4876f0f --- /dev/null +++ b/modules/java/android_test/res/values/strings.xml @@ -0,0 +1,5 @@ + + + Hello World! + OpenCV_Test + diff --git a/modules/java/android_test/src/org/opencv_test/CoreTest.java b/modules/java/android_test/src/org/opencv_test/CoreTest.java new file mode 100644 index 0000000000..22c15378ff --- /dev/null +++ b/modules/java/android_test/src/org/opencv_test/CoreTest.java @@ -0,0 +1,25 @@ +package org.opencv_test; + +import org.opencv.core; + + +public class CoreTest extends OpenCvTestCase { + public void test_1() { + super.test_1("CORE"); + } + + public void test_Can_Call_add() { + core.add(gray128, gray128, dst); + assertMatEqual(gray255, dst); + } + + public void test_Can_Call_absdiff() { + core.absdiff(gray128, gray255, dst); + assertMatEqual(gray127, dst); + } + + public void test_Can_Call_bitwise_and() { + core.bitwise_and(gray3, gray2, dst); + assertMatEqual(gray2, dst); + } +} diff --git a/modules/java/android_test/src/org/opencv_test/ImgprocTest.java b/modules/java/android_test/src/org/opencv_test/ImgprocTest.java new file mode 100644 index 0000000000..152a78ea37 --- /dev/null +++ b/modules/java/android_test/src/org/opencv_test/ImgprocTest.java @@ -0,0 +1,35 @@ +package org.opencv_test; + +import org.opencv.Mat; +import org.opencv.Size; +import org.opencv.imgproc; + + +public class ImgprocTest extends OpenCvTestCase { + public void test_1() { + super.test_1("IMGPROC"); + } + + //FIXME: this test crashes + //public void test_Can_Call_accumulate() { + // dst = new Mat(gray1.rows(), gray1.cols(), Mat.CvType.CV_32FC1); + // imgproc.accumulate(gray1, dst); + // assertMatEqual(gray1, dst); + //} + + public void test_blur() { + Size sz = new Size(3, 3); + + imgproc.blur(gray0, dst, sz); + assertMatEqual(gray0, dst); + + imgproc.blur(gray255, dst, sz); + assertMatEqual(gray255, dst); + } + + public void test_boxFilter() { + Size sz = new Size(3, 3); + imgproc.boxFilter(gray0, dst, 8, sz); + assertMatEqual(gray0, dst); + } +} diff --git a/modules/java/android_test/src/org/opencv_test/MatTest.java b/modules/java/android_test/src/org/opencv_test/MatTest.java new file mode 100644 index 0000000000..dba697ffd5 --- /dev/null +++ b/modules/java/android_test/src/org/opencv_test/MatTest.java @@ -0,0 +1,30 @@ +package org.opencv_test; + +import org.opencv.Mat; + + +public class MatTest extends OpenCvTestCase { + public void test_1() { + super.test_1("Mat"); + } + + public void test_Can_Create_Gray_Mat() { + Mat m = new Mat(1, 1, Mat.CvType.CV_8UC1); + assertFalse(m.empty()); + } + + public void test_Can_Create_RBG_Mat() { + Mat m = new Mat(1, 1, Mat.CvType.CV_8UC3); + assertFalse(m.empty()); + } + + public void test_Can_Get_Cols() { + Mat m = new Mat(10, 10, Mat.CvType.CV_8UC1); + assertEquals(10, m.rows()); + } + + public void test_Can_Get_Rows() { + Mat m = new Mat(10, 10, Mat.CvType.CV_8UC1); + assertEquals(10, m.rows()); + } +} diff --git a/modules/java/android_test/src/org/opencv_test/OpenCvTestCase.java b/modules/java/android_test/src/org/opencv_test/OpenCvTestCase.java new file mode 100644 index 0000000000..eacabd30f1 --- /dev/null +++ b/modules/java/android_test/src/org/opencv_test/OpenCvTestCase.java @@ -0,0 +1,58 @@ +package org.opencv_test; + +import org.opencv.Mat; +import org.opencv.core; + +import android.test.AndroidTestCase; +import android.util.Log; + + +public class OpenCvTestCase extends AndroidTestCase { + + static String TAG = "OpenCV"; + + static Mat gray0; + static Mat gray1; + static Mat gray2; + static Mat gray3; + static Mat gray127; + static Mat gray128; + static Mat gray255; + + static Mat dst; + + @Override + protected void setUp() throws Exception { + //Log.e(TAG, "setUp"); + super.setUp(); + + gray0 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray0.setTo(0.0); + gray1 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray1.setTo(1.0); + gray2 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray2.setTo(2.0); + gray3 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray3.setTo(3.0); + gray127 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray127.setTo(127.0); + gray128 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray128.setTo(128.0); + gray255 = new Mat(10, 10, Mat.CvType.CV_8UC1); gray255.setTo(256.0); + + dst = new Mat(0, 0, Mat.CvType.CV_8UC1); + assertTrue(dst.empty()); + } + + public static void assertMatEqual(Mat m1, Mat m2) { + assertTrue(MatDifference(m1, m2) == 0.0); + } + + static public double MatDifference(Mat m1, Mat m2) { + Mat cmp = new Mat(0, 0, Mat.CvType.CV_8UC1); + core.compare(m1, m2, cmp, core.CMP_EQ); + double num = 100.0 * (1.0 - Double.valueOf(core.countNonZero(cmp)) / Double.valueOf(cmp.rows() * cmp.cols())); + + return num; + } + + public void test_1(String label) { + Log.e(TAG, "================================================"); + Log.e(TAG, "=============== " + label); + Log.e(TAG, "================================================"); + } +}