Java API tests are added: fillConvexPoly, mixChannels, drawContours

This commit is contained in:
Andrey Pavlenko 2011-07-28 15:48:08 +00:00
parent 8c328a9e3b
commit 6b888ada8a
2 changed files with 87 additions and 6 deletions

View File

@ -1,14 +1,16 @@
package org.opencv.test.core;
import java.util.ArrayList;
import java.util.List;
import org.opencv.Converters;
import org.opencv.core.Core;
import org.opencv.core.CvException;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Core;
import org.opencv.test.OpenCVTestCase;
public class coreTest extends OpenCVTestCase {
@ -478,15 +480,57 @@ public class coreTest extends OpenCVTestCase {
}
public void testFillConvexPolyMatMatScalar() {
fail("Not yet implemented");
List<Point> lp = new ArrayList<Point>(4);
lp.add( new Point(1, 1) );
lp.add( new Point(5, 0) );
lp.add( new Point(6, 8) );
lp.add( new Point(0, 9) );
Mat points = Converters.vector_Point_to_Mat(lp);
assertTrue(0 == Core.countNonZero(gray0));
Core.fillConvexPoly(gray0, points, new Scalar(150));
assertTrue(0 < Core.countNonZero(gray0));
Core.fillConvexPoly(gray0, points, new Scalar(0));
assertTrue(0 == Core.countNonZero(gray0));
}
public void testFillConvexPolyMatMatScalarInt() {
fail("Not yet implemented");
List<Point> lp = new ArrayList<Point>(4);
lp.add( new Point(1, 1) );
lp.add( new Point(5, 0) );
lp.add( new Point(6, 8) );
lp.add( new Point(0, 9) );
Mat points = Converters.vector_Point_to_Mat(lp);
assertTrue(0 == Core.countNonZero(gray0));
Core.fillConvexPoly(gray0, points, new Scalar(150), 4);
assertTrue(0 < Core.countNonZero(gray0));
Core.fillConvexPoly(gray0, points, new Scalar(0), 4);
assertTrue(0 == Core.countNonZero(gray0));
}
public void testFillConvexPolyMatMatScalarIntInt() {
fail("Not yet implemented");
List<Point> lp = new ArrayList<Point>(4);
lp.add( new Point(1, 1) );
lp.add( new Point(5, 1) );
lp.add( new Point(5, 8) );
lp.add( new Point(1, 8) );
Mat points = Converters.vector_Point_to_Mat(lp);
List<Point> lp2 = new ArrayList<Point>(4);
lp2.add( new Point(2, 2) );
lp2.add( new Point(10, 2) );
lp2.add( new Point(10, 17) ); //TODO: don't know why '16' fails the test
lp2.add( new Point(2, 17) ); //TODO: don't know why '16' fails the test
Mat points2 = Converters.vector_Point_to_Mat(lp2);
assertTrue(0 == Core.countNonZero(gray0));
Core.fillConvexPoly(gray0, points, new Scalar(150), 4, 0);
assertTrue(0 < Core.countNonZero(gray0));
Core.fillConvexPoly(gray0, points2, new Scalar(0), 4, 1);
assertTrue(0 == Core.countNonZero(gray0));
}
public void testFillPolyMatListOfMatScalar() {
@ -921,7 +965,36 @@ public class coreTest extends OpenCVTestCase {
}
public void testMixChannels() {
fail("Not yet implemented");
rgba0.setTo(new Scalar(10, 20, 30, 40));
List<Mat> result = new ArrayList<Mat>();
Core.split(rgba0, result);
assertEquals(10, (int) result.get(0).get(0, 0)[0]);
assertEquals(20, (int) result.get(1).get(0, 0)[0]);
assertEquals(30, (int) result.get(2).get(0, 0)[0]);
assertEquals(40, (int) result.get(3).get(0, 0)[0]);
List<Mat> src = new ArrayList<Mat>(1);
src.add(rgba0);
List<Mat> dst = new ArrayList<Mat>(4);
dst.add(gray3);
dst.add(gray2);
dst.add(gray1);
dst.add(gray0);
List<Integer> fromTo = new ArrayList<Integer>(8);
fromTo.add(0); fromTo.add(3);
fromTo.add(1); fromTo.add(2);
fromTo.add(2); fromTo.add(1);
fromTo.add(3); fromTo.add(0);
Core.mixChannels(src, dst, fromTo);
assertMatEqual(result.get(0), gray0);
assertMatEqual(result.get(1), gray1);
assertMatEqual(result.get(2), gray2);
assertMatEqual(result.get(3), gray3);
}
public void testMulSpectrumsMatMatMatInt() {

View File

@ -588,7 +588,15 @@ public class imgprocTest extends OpenCVTestCase {
}
public void testDrawContoursMatListOfMatIntScalar() {
fail("Not yet implemented");
List<Mat> contours = new ArrayList<Mat>(5);
Mat hierarchy = dst;
Core.rectangle(gray0, new Point(1, 2), new Point(7, 8), new Scalar(100));
Imgproc.findContours(gray0, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
assertTrue(1 == contours.size());
assertFalse(0 == Core.countNonZero(gray0));
Imgproc.drawContours(gray0, contours, -1, new Scalar(0));
assertTrue(0 == Core.countNonZero(gray0));
}
public void testDrawContoursMatListOfMatIntScalarInt() {