added some tests to core module

This commit is contained in:
Kirill Kornyakov 2011-07-01 13:34:23 +00:00
parent f8e42721d3
commit e958383225
3 changed files with 102 additions and 35 deletions
modules/java/android_test/src/org/opencv/test

@ -8,7 +8,7 @@ import android.util.Log;
public class OpenCVTestCase extends AndroidTestCase { public class OpenCVTestCase extends AndroidTestCase {
static String TAG = "OpenCV"; static String TAG = "OpenCV_JavaAPI_Tests";
static int matSize = 10; static int matSize = 10;
static Mat gray0; static Mat gray0;
@ -22,13 +22,19 @@ public class OpenCVTestCase extends AndroidTestCase {
static Mat grayRnd; static Mat grayRnd;
static Mat grayRnd_32f; static Mat grayRnd_32f;
static Mat grayE_32f;
static Mat gray0_32f; static Mat gray0_32f;
static Mat gray0_32f_1d; static Mat gray0_32f_1d;
static Mat gray0_64f; static Mat gray0_64f;
static Mat gray0_64f_1d; static Mat gray0_64f_1d;
static Mat rgba0;
static Mat rgba128;
static Mat dst; static Mat dst_gray;
static Mat dst_gray_32f;
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
@ -48,14 +54,21 @@ public class OpenCVTestCase extends AndroidTestCase {
grayRnd = new Mat(matSize, matSize, Mat.CvType.CV_8UC1); core.randu(grayRnd, low, high); grayRnd = new Mat(matSize, matSize, Mat.CvType.CV_8UC1); core.randu(grayRnd, low, high);
grayRnd_32f = new Mat(matSize, matSize, Mat.CvType.CV_32FC1); core.randu(grayRnd_32f, low, high); grayRnd_32f = new Mat(matSize, matSize, Mat.CvType.CV_32FC1); core.randu(grayRnd_32f, low, high);
grayE_32f = new Mat(matSize, matSize, Mat.CvType.CV_32FC1); grayE_32f = Mat.eye(matSize, matSize, Mat.CvType.CV_32FC1);
gray0_32f = new Mat(matSize, matSize, Mat.CvType.CV_32FC1); gray0_32f.setTo(0.0); gray0_32f = new Mat(matSize, matSize, Mat.CvType.CV_32FC1); gray0_32f.setTo(0.0);
gray0_32f_1d = new Mat(1, matSize, Mat.CvType.CV_32FC1); gray0_32f_1d.setTo(0.0); gray0_32f_1d = new Mat(1, matSize, Mat.CvType.CV_32FC1); gray0_32f_1d.setTo(0.0);
gray0_64f = new Mat(matSize, matSize, Mat.CvType.CV_64FC1); gray0_64f.setTo(0.0); gray0_64f = new Mat(matSize, matSize, Mat.CvType.CV_64FC1); gray0_64f.setTo(0.0);
gray0_64f_1d = new Mat(1, matSize, Mat.CvType.CV_64FC1); gray0_64f_1d.setTo(0.0); gray0_64f_1d = new Mat(1, matSize, Mat.CvType.CV_64FC1); gray0_64f_1d.setTo(0.0);
rgba0 = new Mat(matSize, matSize, Mat.CvType.CV_8UC4); rgba0.setTo(0, 0, 0, 0);
rgba128 = new Mat(matSize, matSize, Mat.CvType.CV_8UC4); rgba128.setTo(128, 128, 128, 128);
dst = new Mat(0, 0, Mat.CvType.CV_8UC1); dst_gray = new Mat(0, 0, Mat.CvType.CV_8UC1);
assertTrue(dst.empty()); assertTrue(dst_gray.empty());
dst_gray_32f = new Mat(0, 0, Mat.CvType.CV_32FC1);
assertTrue(dst_gray_32f.empty());
} }
public static void assertMatEqual(Mat m1, Mat m2) { public static void assertMatEqual(Mat m1, Mat m2) {

@ -1,6 +1,8 @@
package org.opencv.test; package org.opencv.test;
import org.opencv.Mat; import org.opencv.Mat;
import org.opencv.Point;
import org.opencv.Scalar;
import org.opencv.core; import org.opencv.core;
public class coreTest extends OpenCVTestCase { public class coreTest extends OpenCVTestCase {
@ -17,12 +19,12 @@ public class coreTest extends OpenCVTestCase {
Mat lut = new Mat(1, 256, Mat.CvType.CV_8UC1); Mat lut = new Mat(1, 256, Mat.CvType.CV_8UC1);
lut.setTo(0); lut.setTo(0);
core.LUT(grayRnd, lut, dst); core.LUT(grayRnd, lut, dst_gray);
assertMatEqual(gray0, dst); assertMatEqual(gray0, dst_gray);
lut.setTo(255); lut.setTo(255);
core.LUT(grayRnd, lut, dst); core.LUT(grayRnd, lut, dst_gray);
assertMatEqual(gray255, dst); assertMatEqual(gray255, dst_gray);
} }
public void testMahalanobis() { public void testMahalanobis() {
@ -43,8 +45,8 @@ public class coreTest extends OpenCVTestCase {
} }
public void testAbsdiff() { public void testAbsdiff() {
core.absdiff(gray128, gray255, dst); core.absdiff(gray128, gray255, dst_gray);
assertMatEqual(gray127, dst); assertMatEqual(gray127, dst_gray);
} }
public void testAddMatMatMatMatInt() { public void testAddMatMatMatMatInt() {
@ -56,8 +58,8 @@ public class coreTest extends OpenCVTestCase {
} }
public void testAddMatMatMat() { public void testAddMatMatMat() {
core.add(gray128, gray128, dst); core.add(gray128, gray128, dst_gray);
assertMatEqual(gray255, dst); assertMatEqual(gray255, dst_gray);
} }
public void testAddWeightedMatDoubleMatDoubleDoubleMatInt() { public void testAddWeightedMatDoubleMatDoubleDoubleMatInt() {
@ -73,8 +75,8 @@ public class coreTest extends OpenCVTestCase {
} }
public void testBitwise_andMatMatMat() { public void testBitwise_andMatMatMat() {
core.bitwise_and(gray3, gray2, dst); core.bitwise_and(gray3, gray2, dst_gray);
assertMatEqual(gray2, dst); assertMatEqual(gray2, dst_gray);
} }
public void testBitwise_notMatMatMat() { public void testBitwise_notMatMatMat() {
@ -128,7 +130,8 @@ public class coreTest extends OpenCVTestCase {
} }
public void testCheckHardwareSupport() { public void testCheckHardwareSupport() {
fail("Not yet implemented"); boolean hasFeauture = core.checkHardwareSupport(0); //FIXME: do we need this function?
assertEquals(false, hasFeauture);
} }
public void testCircleMatPointIntScalarIntIntInt() { public void testCircleMatPointIntScalarIntIntInt() {
@ -144,19 +147,35 @@ public class coreTest extends OpenCVTestCase {
} }
public void testCircleMatPointIntScalar() { public void testCircleMatPointIntScalar() {
fail("Not yet implemented"); Point center = new Point(gray0.cols() / 2, gray0.rows()/2);
int radius = Math.min(gray0.cols()/4, gray0.rows()/4);
Scalar color = new Scalar(128);
assertTrue(0 == core.countNonZero(gray0));
core.circle(gray0, center, radius, color);
assertTrue(0 != core.countNonZero(gray0));
} }
public void testCompare() { public void testCompare() {
fail("Not yet implemented"); Mat cmp = new Mat(0, 0, Mat.CvType.CV_8UC1);
core.compare(gray0, gray0, cmp, core.CMP_EQ);
assertMatEqual(cmp, gray255);
core.compare(gray0, gray1, cmp, core.CMP_EQ);
assertMatEqual(cmp, gray0);
} }
public void testCompleteSymmMatBoolean() { public void testCompleteSymmMatBoolean() {
fail("Not yet implemented"); core.completeSymm(grayRnd_32f, true);
core.transpose(grayRnd_32f, dst_gray_32f);
assertMatEqual(grayRnd_32f, dst_gray_32f);
} }
public void testCompleteSymmMat() { public void testCompleteSymmMat() {
fail("Not yet implemented"); core.completeSymm(grayRnd_32f);
core.transpose(grayRnd_32f, dst_gray_32f);
assertMatEqual(grayRnd_32f, dst_gray_32f);
} }
public void testConvertScaleAbsMatMatDoubleDouble() { public void testConvertScaleAbsMatMatDoubleDouble() {
@ -172,7 +191,10 @@ public class coreTest extends OpenCVTestCase {
} }
public void testCountNonZero() { public void testCountNonZero() {
fail("Not yet implemented"); assertEquals(0, core.countNonZero(gray0));
gray0.put(0, 0, 255);
gray0.put(gray0.rows() - 1, gray0.cols() - 1, 255);
assertEquals(2, core.countNonZero(gray0));
} }
public void testCubeRoot() { public void testCubeRoot() {
@ -184,7 +206,15 @@ public class coreTest extends OpenCVTestCase {
} }
public void testDctMatMat() { public void testDctMatMat() {
fail("Not yet implemented"); core.dct(gray0_32f_1d, dst_gray);
assertMatEqual(gray0_32f_1d, dst_gray);
Mat in = new Mat(1, 4, Mat.CvType.CV_32FC1);
in.put(0, 0, 135.22211, 50.811096, 102.27016, 207.6682);
Mat out = new Mat(1, 4, Mat.CvType.CV_32FC1);
out.put(0, 0, 247.98576, -61.252407, 94.904533, 14.013477);
core.dct(in, dst_gray);
assertMatEqual(out, dst_gray);
} }
public void testDeterminant() { public void testDeterminant() {
@ -244,7 +274,8 @@ public class coreTest extends OpenCVTestCase {
} }
public void testExtractChannel() { public void testExtractChannel() {
fail("Not yet implemented"); core.extractChannel(rgba128, dst_gray, 0);
assertMatEqual(gray128, dst_gray);
} }
public void testFastAtan2() { public void testFastAtan2() {
@ -268,11 +299,18 @@ public class coreTest extends OpenCVTestCase {
} }
public void testGetTickFrequency() { public void testGetTickFrequency() {
fail("Not yet implemented"); double freq = core.getTickFrequency();
assertTrue(0.0 != freq);
} }
public void testHconcat() { public void testHconcat() {
fail("Not yet implemented"); Mat e = new Mat(3, 3, Mat.CvType.CV_8UC1);
Mat eConcat = new Mat(1, 9, Mat.CvType.CV_8UC1);
e.put(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1);
eConcat.put(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1);
core.hconcat(e, dst_gray);
assertMatEqual(eConcat, dst_gray);
} }
public void testIdctMatMatInt() { public void testIdctMatMatInt() {
@ -300,7 +338,11 @@ public class coreTest extends OpenCVTestCase {
} }
public void testInsertChannel() { public void testInsertChannel() {
fail("Not yet implemented"); core.insertChannel(gray0, rgba128, 0);
core.insertChannel(gray0, rgba128, 1);
core.insertChannel(gray0, rgba128, 2);
core.insertChannel(gray0, rgba128, 3);
//assertMatEqual(rgba0, rgba128);
} }
public void testInvertMatMatInt() { public void testInvertMatMatInt() {
@ -324,7 +366,15 @@ public class coreTest extends OpenCVTestCase {
} }
public void testLineMatPointPointScalar() { public void testLineMatPointPointScalar() {
fail("Not yet implemented"); int nPoints = Math.min(gray0.cols(), gray0.rows());
Point point1 = new Point(0, 0);
Point point2 = new Point(nPoints, nPoints);
Scalar color = new Scalar(255);
assertTrue(0 == core.countNonZero(gray0));
core.line(gray0, point1, point2, color);
assertTrue(nPoints == core.countNonZero(gray0));
} }
public void testLog() { public void testLog() {
@ -356,6 +406,7 @@ public class coreTest extends OpenCVTestCase {
} }
public void testMulSpectrumsMatMatMatInt() { public void testMulSpectrumsMatMatMatInt() {
//TODO: complex math. See the dct function test.
fail("Not yet implemented"); fail("Not yet implemented");
} }
@ -372,7 +423,8 @@ public class coreTest extends OpenCVTestCase {
} }
public void testMulTransposedMatMatBoolean() { public void testMulTransposedMatMatBoolean() {
fail("Not yet implemented"); core.mulTransposed(grayE_32f, dst_gray_32f, true);
assertMatEqual(grayE_32f, dst_gray_32f);
} }
public void testMultiplyMatMatMatDoubleInt() { public void testMultiplyMatMatMatDoubleInt() {
@ -392,10 +444,11 @@ public class coreTest extends OpenCVTestCase {
} }
public void testNormMatInt() { public void testNormMatInt() {
fail("Not yet implemented"); double n = core.norm(gray127, core.NORM_INF);
assertTrue(127 == n);
} }
public void testNormMat() { public void testNormMat() {
fail("Not yet implemented"); fail("Not yet implemented");
} }
@ -436,6 +489,7 @@ public class coreTest extends OpenCVTestCase {
} }
public void testPerspectiveTransform() { public void testPerspectiveTransform() {
//XXX: kirill stopped here
fail("Not yet implemented"); fail("Not yet implemented");
} }

@ -200,11 +200,11 @@ public class imgprocTest extends OpenCVTestCase {
public void testBlurMatMatSize() { public void testBlurMatMatSize() {
Size sz = new Size(3, 3); Size sz = new Size(3, 3);
imgproc.blur(gray0, dst, sz); imgproc.blur(gray0, dst_gray, sz);
assertMatEqual(gray0, dst); assertMatEqual(gray0, dst_gray);
imgproc.blur(gray255, dst, sz); imgproc.blur(gray255, dst_gray, sz);
assertMatEqual(gray255, dst); assertMatEqual(gray255, dst_gray);
} }
public void testBorderInterpolate() { public void testBorderInterpolate() {
@ -225,8 +225,8 @@ public class imgprocTest extends OpenCVTestCase {
public void testBoxFilterMatMatIntSize() { public void testBoxFilterMatMatIntSize() {
Size sz = new Size(3, 3); Size sz = new Size(3, 3);
imgproc.boxFilter(gray0, dst, 8, sz); imgproc.boxFilter(gray0, dst_gray, 8, sz);
assertMatEqual(gray0, dst); assertMatEqual(gray0, dst_gray);
} }
public void testCompareHist() { public void testCompareHist() {