1 package org.opencv.test.calib3d;
2 
3 import org.opencv.calib3d.Calib3d;
4 import org.opencv.core.Core;
5 import org.opencv.core.CvType;
6 import org.opencv.core.Mat;
7 import org.opencv.core.MatOfDouble;
8 import org.opencv.core.MatOfPoint2f;
9 import org.opencv.core.MatOfPoint3f;
10 import org.opencv.core.Point;
11 import org.opencv.core.Scalar;
12 import org.opencv.core.Size;
13 import org.opencv.test.OpenCVTestCase;
14 import org.opencv.imgproc.Imgproc;
15 
16 public class Calib3dTest extends OpenCVTestCase {
17 
testCalibrateCameraListOfMatListOfMatSizeMatMatListOfMatListOfMat()18     public void testCalibrateCameraListOfMatListOfMatSizeMatMatListOfMatListOfMat() {
19         fail("Not yet implemented");
20     }
21 
testCalibrateCameraListOfMatListOfMatSizeMatMatListOfMatListOfMatInt()22     public void testCalibrateCameraListOfMatListOfMatSizeMatMatListOfMatListOfMatInt() {
23         fail("Not yet implemented");
24     }
25 
testCalibrationMatrixValues()26     public void testCalibrationMatrixValues() {
27         fail("Not yet implemented");
28     }
29 
testComposeRTMatMatMatMatMatMat()30     public void testComposeRTMatMatMatMatMatMat() {
31         Mat rvec1 = new Mat(3, 1, CvType.CV_32F);
32         rvec1.put(0, 0, 0.5302828, 0.19925919, 0.40105945);
33         Mat tvec1 = new Mat(3, 1, CvType.CV_32F);
34         tvec1.put(0, 0, 0.81438506, 0.43713298, 0.2487897);
35         Mat rvec2 = new Mat(3, 1, CvType.CV_32F);
36         rvec2.put(0, 0, 0.77310503, 0.76209372, 0.30779448);
37         Mat tvec2 = new Mat(3, 1, CvType.CV_32F);
38         tvec2.put(0, 0, 0.70243168, 0.4784472, 0.79219002);
39 
40         Mat rvec3 = new Mat();
41         Mat tvec3 = new Mat();
42 
43         Mat outRvec = new Mat(3, 1, CvType.CV_32F);
44         outRvec.put(0, 0, 1.418641, 0.88665926, 0.56020796);
45         Mat outTvec = new Mat(3, 1, CvType.CV_32F);
46         outTvec.put(0, 0, 1.4560841, 1.0680628, 0.81598103);
47 
48         Calib3d.composeRT(rvec1, tvec1, rvec2, tvec2, rvec3, tvec3);
49 
50         assertMatEqual(outRvec, rvec3, EPS);
51         assertMatEqual(outTvec, tvec3, EPS);
52     }
53 
testComposeRTMatMatMatMatMatMatMat()54     public void testComposeRTMatMatMatMatMatMatMat() {
55         fail("Not yet implemented");
56     }
57 
testComposeRTMatMatMatMatMatMatMatMat()58     public void testComposeRTMatMatMatMatMatMatMatMat() {
59         fail("Not yet implemented");
60     }
61 
testComposeRTMatMatMatMatMatMatMatMatMat()62     public void testComposeRTMatMatMatMatMatMatMatMatMat() {
63         fail("Not yet implemented");
64     }
65 
testComposeRTMatMatMatMatMatMatMatMatMatMat()66     public void testComposeRTMatMatMatMatMatMatMatMatMatMat() {
67         fail("Not yet implemented");
68     }
69 
testComposeRTMatMatMatMatMatMatMatMatMatMatMat()70     public void testComposeRTMatMatMatMatMatMatMatMatMatMatMat() {
71         fail("Not yet implemented");
72     }
73 
testComposeRTMatMatMatMatMatMatMatMatMatMatMatMat()74     public void testComposeRTMatMatMatMatMatMatMatMatMatMatMatMat() {
75         fail("Not yet implemented");
76     }
77 
testComposeRTMatMatMatMatMatMatMatMatMatMatMatMatMat()78     public void testComposeRTMatMatMatMatMatMatMatMatMatMatMatMatMat() {
79         fail("Not yet implemented");
80     }
81 
testComposeRTMatMatMatMatMatMatMatMatMatMatMatMatMatMat()82     public void testComposeRTMatMatMatMatMatMatMatMatMatMatMatMatMatMat() {
83         fail("Not yet implemented");
84         // Mat dr3dr1;
85         // Mat dr3dt1;
86         // Mat dr3dr2;
87         // Mat dr3dt2;
88         // Mat dt3dr1;
89         // Mat dt3dt1;
90         // Mat dt3dr2;
91         // Mat dt3dt2;
92         // , dr3dr1, dr3dt1, dr3dr2, dr3dt2, dt3dr1, dt3dt1, dt3dr2, dt3dt2);
93         // [0.97031879, -0.091774099, 0.38594806;
94         // 0.15181915, 0.98091727, -0.44186208;
95         // -0.39509675, 0.43839464, 0.93872648]
96         // [0, 0, 0;
97         // 0, 0, 0;
98         // 0, 0, 0]
99         // [1.0117353, 0.16348237, -0.083180845;
100         // -0.1980398, 1.006078, 0.30299222;
101         // 0.075766489, -0.32784501, 1.0163091]
102         // [0, 0, 0;
103         // 0, 0, 0;
104         // 0, 0, 0]
105         // [0, 0, 0;
106         // 0, 0, 0;
107         // 0, 0, 0]
108         // [0.69658804, 0.018115902, 0.7172426;
109         // 0.51114357, 0.68899536, -0.51382649;
110         // -0.50348526, 0.72453934, 0.47068608]
111         // [0.18536358, -0.20515044, -0.48834875;
112         // -0.25120571, 0.29043972, 0.60573936;
113         // 0.35370794, -0.69923931, 0.45781645]
114         // [1, 0, 0;
115         // 0, 1, 0;
116         // 0, 0, 1]
117     }
118 
testConvertPointsFromHomogeneous()119     public void testConvertPointsFromHomogeneous() {
120         fail("Not yet implemented");
121     }
122 
testConvertPointsToHomogeneous()123     public void testConvertPointsToHomogeneous() {
124         fail("Not yet implemented");
125     }
126 
testDecomposeProjectionMatrixMatMatMatMat()127     public void testDecomposeProjectionMatrixMatMatMatMat() {
128         fail("Not yet implemented");
129     }
130 
testDecomposeProjectionMatrixMatMatMatMatMat()131     public void testDecomposeProjectionMatrixMatMatMatMatMat() {
132         fail("Not yet implemented");
133     }
134 
testDecomposeProjectionMatrixMatMatMatMatMatMat()135     public void testDecomposeProjectionMatrixMatMatMatMatMatMat() {
136         fail("Not yet implemented");
137     }
138 
testDecomposeProjectionMatrixMatMatMatMatMatMatMat()139     public void testDecomposeProjectionMatrixMatMatMatMatMatMatMat() {
140         fail("Not yet implemented");
141     }
142 
testDecomposeProjectionMatrixMatMatMatMatMatMatMatMat()143     public void testDecomposeProjectionMatrixMatMatMatMatMatMatMatMat() {
144         fail("Not yet implemented");
145     }
146 
testDrawChessboardCorners()147     public void testDrawChessboardCorners() {
148         fail("Not yet implemented");
149     }
150 
testEstimateAffine3DMatMatMatMat()151     public void testEstimateAffine3DMatMatMatMat() {
152         fail("Not yet implemented");
153     }
154 
testEstimateAffine3DMatMatMatMatDouble()155     public void testEstimateAffine3DMatMatMatMatDouble() {
156         fail("Not yet implemented");
157     }
158 
testEstimateAffine3DMatMatMatMatDoubleDouble()159     public void testEstimateAffine3DMatMatMatMatDoubleDouble() {
160         fail("Not yet implemented");
161     }
162 
testFilterSpecklesMatDoubleIntDouble()163     public void testFilterSpecklesMatDoubleIntDouble() {
164         gray_16s_1024.copyTo(dst);
165         Point center = new Point(gray_16s_1024.rows() / 2., gray_16s_1024.cols() / 2.);
166         Imgproc.circle(dst, center, 1, Scalar.all(4096));
167 
168         assertMatNotEqual(gray_16s_1024, dst);
169         Calib3d.filterSpeckles(dst, 1024.0, 100, 0.);
170         assertMatEqual(gray_16s_1024, dst);
171     }
172 
testFilterSpecklesMatDoubleIntDoubleMat()173     public void testFilterSpecklesMatDoubleIntDoubleMat() {
174         fail("Not yet implemented");
175     }
176 
testFindChessboardCornersMatSizeMat()177     public void testFindChessboardCornersMatSizeMat() {
178         Size patternSize = new Size(9, 6);
179         MatOfPoint2f corners = new MatOfPoint2f();
180         Calib3d.findChessboardCorners(grayChess, patternSize, corners);
181         assertTrue(!corners.empty());
182     }
183 
testFindChessboardCornersMatSizeMatInt()184     public void testFindChessboardCornersMatSizeMatInt() {
185         Size patternSize = new Size(9, 6);
186         MatOfPoint2f corners = new MatOfPoint2f();
187         Calib3d.findChessboardCorners(grayChess, patternSize, corners, Calib3d.CALIB_CB_ADAPTIVE_THRESH + Calib3d.CALIB_CB_NORMALIZE_IMAGE
188                 + Calib3d.CALIB_CB_FAST_CHECK);
189         assertTrue(!corners.empty());
190     }
191 
testFindCirclesGridMatSizeMat()192     public void testFindCirclesGridMatSizeMat() {
193         int size = 300;
194         Mat img = new Mat(size, size, CvType.CV_8U);
195         img.setTo(new Scalar(255));
196         Mat centers = new Mat();
197 
198         assertFalse(Calib3d.findCirclesGrid(img, new Size(5, 5), centers));
199 
200         for (int i = 0; i < 5; i++)
201             for (int j = 0; j < 5; j++) {
202                 Point pt = new Point(size * (2 * i + 1) / 10, size * (2 * j + 1) / 10);
203                 Imgproc.circle(img, pt, 10, new Scalar(0), -1);
204             }
205 
206         assertTrue(Calib3d.findCirclesGrid(img, new Size(5, 5), centers));
207 
208         assertEquals(25, centers.rows());
209         assertEquals(1, centers.cols());
210         assertEquals(CvType.CV_32FC2, centers.type());
211     }
212 
testFindCirclesGridMatSizeMatInt()213     public void testFindCirclesGridMatSizeMatInt() {
214         int size = 300;
215         Mat img = new Mat(size, size, CvType.CV_8U);
216         img.setTo(new Scalar(255));
217         Mat centers = new Mat();
218 
219         assertFalse(Calib3d.findCirclesGrid(img, new Size(3, 5), centers, Calib3d.CALIB_CB_CLUSTERING
220                 | Calib3d.CALIB_CB_ASYMMETRIC_GRID));
221 
222         int step = size * 2 / 15;
223         int offsetx = size / 6;
224         int offsety = (size - 4 * step) / 2;
225         for (int i = 0; i < 3; i++)
226             for (int j = 0; j < 5; j++) {
227                 Point pt = new Point(offsetx + (2 * i + j % 2) * step, offsety + step * j);
228                 Imgproc.circle(img, pt, 10, new Scalar(0), -1);
229             }
230 
231         assertTrue(Calib3d.findCirclesGrid(img, new Size(3, 5), centers, Calib3d.CALIB_CB_CLUSTERING
232                 | Calib3d.CALIB_CB_ASYMMETRIC_GRID));
233 
234         assertEquals(15, centers.rows());
235         assertEquals(1, centers.cols());
236         assertEquals(CvType.CV_32FC2, centers.type());
237     }
238 
testFindFundamentalMatListOfPointListOfPoint()239     public void testFindFundamentalMatListOfPointListOfPoint() {
240         int minFundamentalMatPoints = 8;
241 
242         MatOfPoint2f pts = new MatOfPoint2f();
243         pts.alloc(minFundamentalMatPoints);
244 
245         for (int i = 0; i < minFundamentalMatPoints; i++) {
246             double x = Math.random() * 100 - 50;
247             double y = Math.random() * 100 - 50;
248             pts.put(i, 0, x, y); //add(new Point(x, y));
249         }
250 
251         Mat fm = Calib3d.findFundamentalMat(pts, pts);
252 
253         truth = new Mat(3, 3, CvType.CV_64F);
254         truth.put(0, 0, 0, -0.577, 0.288, 0.577, 0, 0.288, -0.288, -0.288, 0);
255         assertMatEqual(truth, fm, EPS);
256     }
257 
testFindFundamentalMatListOfPointListOfPointInt()258     public void testFindFundamentalMatListOfPointListOfPointInt() {
259         fail("Not yet implemented");
260     }
261 
testFindFundamentalMatListOfPointListOfPointIntDouble()262     public void testFindFundamentalMatListOfPointListOfPointIntDouble() {
263         fail("Not yet implemented");
264     }
265 
testFindFundamentalMatListOfPointListOfPointIntDoubleDouble()266     public void testFindFundamentalMatListOfPointListOfPointIntDoubleDouble() {
267         fail("Not yet implemented");
268     }
269 
testFindFundamentalMatListOfPointListOfPointIntDoubleDoubleMat()270     public void testFindFundamentalMatListOfPointListOfPointIntDoubleDoubleMat() {
271         fail("Not yet implemented");
272     }
273 
testFindHomographyListOfPointListOfPoint()274     public void testFindHomographyListOfPointListOfPoint() {
275         final int NUM = 20;
276 
277         MatOfPoint2f originalPoints = new MatOfPoint2f();
278         originalPoints.alloc(NUM);
279         MatOfPoint2f transformedPoints = new MatOfPoint2f();
280         transformedPoints.alloc(NUM);
281 
282         for (int i = 0; i < NUM; i++) {
283             double x = Math.random() * 100 - 50;
284             double y = Math.random() * 100 - 50;
285             originalPoints.put(i, 0, x, y);
286             transformedPoints.put(i, 0, y, x);
287         }
288 
289         Mat hmg = Calib3d.findHomography(originalPoints, transformedPoints);
290 
291         truth = new Mat(3, 3, CvType.CV_64F);
292         truth.put(0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1);
293 
294         assertMatEqual(truth, hmg, EPS);
295     }
296 
testFindHomographyListOfPointListOfPointInt()297     public void testFindHomographyListOfPointListOfPointInt() {
298         fail("Not yet implemented");
299     }
300 
testFindHomographyListOfPointListOfPointIntDouble()301     public void testFindHomographyListOfPointListOfPointIntDouble() {
302         fail("Not yet implemented");
303     }
304 
testFindHomographyListOfPointListOfPointIntDoubleMat()305     public void testFindHomographyListOfPointListOfPointIntDoubleMat() {
306         fail("Not yet implemented");
307     }
308 
testGetOptimalNewCameraMatrixMatMatSizeDouble()309     public void testGetOptimalNewCameraMatrixMatMatSizeDouble() {
310         fail("Not yet implemented");
311     }
312 
testGetOptimalNewCameraMatrixMatMatSizeDoubleSize()313     public void testGetOptimalNewCameraMatrixMatMatSizeDoubleSize() {
314         fail("Not yet implemented");
315     }
316 
testGetOptimalNewCameraMatrixMatMatSizeDoubleSizeRect()317     public void testGetOptimalNewCameraMatrixMatMatSizeDoubleSizeRect() {
318         fail("Not yet implemented");
319     }
320 
testGetOptimalNewCameraMatrixMatMatSizeDoubleSizeRectBoolean()321     public void testGetOptimalNewCameraMatrixMatMatSizeDoubleSizeRectBoolean() {
322         fail("Not yet implemented");
323     }
324 
testGetValidDisparityROI()325     public void testGetValidDisparityROI() {
326         fail("Not yet implemented");
327     }
328 
testInitCameraMatrix2DListOfMatListOfMatSize()329     public void testInitCameraMatrix2DListOfMatListOfMatSize() {
330         fail("Not yet implemented");
331     }
332 
testInitCameraMatrix2DListOfMatListOfMatSizeDouble()333     public void testInitCameraMatrix2DListOfMatListOfMatSizeDouble() {
334         fail("Not yet implemented");
335     }
336 
testMatMulDeriv()337     public void testMatMulDeriv() {
338         fail("Not yet implemented");
339     }
340 
testProjectPointsMatMatMatMatMatMat()341     public void testProjectPointsMatMatMatMatMatMat() {
342         fail("Not yet implemented");
343     }
344 
testProjectPointsMatMatMatMatMatMatMat()345     public void testProjectPointsMatMatMatMatMatMatMat() {
346         fail("Not yet implemented");
347     }
348 
testProjectPointsMatMatMatMatMatMatMatDouble()349     public void testProjectPointsMatMatMatMatMatMatMatDouble() {
350         fail("Not yet implemented");
351     }
352 
testRectify3Collinear()353     public void testRectify3Collinear() {
354         fail("Not yet implemented");
355     }
356 
testReprojectImageTo3DMatMatMat()357     public void testReprojectImageTo3DMatMatMat() {
358         Mat transformMatrix = new Mat(4, 4, CvType.CV_64F);
359         transformMatrix.put(0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
360 
361         Mat disparity = new Mat(matSize, matSize, CvType.CV_32F);
362 
363         float[] disp = new float[matSize * matSize];
364         for (int i = 0; i < matSize; i++)
365             for (int j = 0; j < matSize; j++)
366                 disp[i * matSize + j] = i - j;
367         disparity.put(0, 0, disp);
368 
369         Mat _3dPoints = new Mat();
370 
371         Calib3d.reprojectImageTo3D(disparity, _3dPoints, transformMatrix);
372 
373         assertEquals(CvType.CV_32FC3, _3dPoints.type());
374         assertEquals(matSize, _3dPoints.rows());
375         assertEquals(matSize, _3dPoints.cols());
376 
377         truth = new Mat(matSize, matSize, CvType.CV_32FC3);
378 
379         float[] _truth = new float[matSize * matSize * 3];
380         for (int i = 0; i < matSize; i++)
381             for (int j = 0; j < matSize; j++) {
382                 _truth[(i * matSize + j) * 3 + 0] = i;
383                 _truth[(i * matSize + j) * 3 + 1] = j;
384                 _truth[(i * matSize + j) * 3 + 2] = i - j;
385             }
386         truth.put(0, 0, _truth);
387 
388         assertMatEqual(truth, _3dPoints, EPS);
389     }
390 
testReprojectImageTo3DMatMatMatBoolean()391     public void testReprojectImageTo3DMatMatMatBoolean() {
392         Mat transformMatrix = new Mat(4, 4, CvType.CV_64F);
393         transformMatrix.put(0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
394 
395         Mat disparity = new Mat(matSize, matSize, CvType.CV_32F);
396 
397         float[] disp = new float[matSize * matSize];
398         for (int i = 0; i < matSize; i++)
399             for (int j = 0; j < matSize; j++)
400                 disp[i * matSize + j] = i - j;
401         disp[0] = -Float.MAX_VALUE;
402         disparity.put(0, 0, disp);
403 
404         Mat _3dPoints = new Mat();
405 
406         Calib3d.reprojectImageTo3D(disparity, _3dPoints, transformMatrix, true);
407 
408         assertEquals(CvType.CV_32FC3, _3dPoints.type());
409         assertEquals(matSize, _3dPoints.rows());
410         assertEquals(matSize, _3dPoints.cols());
411 
412         truth = new Mat(matSize, matSize, CvType.CV_32FC3);
413 
414         float[] _truth = new float[matSize * matSize * 3];
415         for (int i = 0; i < matSize; i++)
416             for (int j = 0; j < matSize; j++) {
417                 _truth[(i * matSize + j) * 3 + 0] = i;
418                 _truth[(i * matSize + j) * 3 + 1] = j;
419                 _truth[(i * matSize + j) * 3 + 2] = i - j;
420             }
421         _truth[2] = 10000;
422         truth.put(0, 0, _truth);
423 
424         assertMatEqual(truth, _3dPoints, EPS);
425     }
426 
testReprojectImageTo3DMatMatMatBooleanInt()427     public void testReprojectImageTo3DMatMatMatBooleanInt() {
428         Mat transformMatrix = new Mat(4, 4, CvType.CV_64F);
429         transformMatrix.put(0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
430 
431         Mat disparity = new Mat(matSize, matSize, CvType.CV_32F);
432 
433         float[] disp = new float[matSize * matSize];
434         for (int i = 0; i < matSize; i++)
435             for (int j = 0; j < matSize; j++)
436                 disp[i * matSize + j] = i - j;
437         disparity.put(0, 0, disp);
438 
439         Mat _3dPoints = new Mat();
440 
441         Calib3d.reprojectImageTo3D(disparity, _3dPoints, transformMatrix, false, CvType.CV_16S);
442 
443         assertEquals(CvType.CV_16SC3, _3dPoints.type());
444         assertEquals(matSize, _3dPoints.rows());
445         assertEquals(matSize, _3dPoints.cols());
446 
447         truth = new Mat(matSize, matSize, CvType.CV_16SC3);
448 
449         short[] _truth = new short[matSize * matSize * 3];
450         for (short i = 0; i < matSize; i++)
451             for (short j = 0; j < matSize; j++) {
452                 _truth[(i * matSize + j) * 3 + 0] = i;
453                 _truth[(i * matSize + j) * 3 + 1] = j;
454                 _truth[(i * matSize + j) * 3 + 2] = (short) (i - j);
455             }
456         truth.put(0, 0, _truth);
457 
458         assertMatEqual(truth, _3dPoints, EPS);
459     }
460 
testRodriguesMatMat()461     public void testRodriguesMatMat() {
462         Mat r = new Mat(3, 1, CvType.CV_32F);
463         Mat R = new Mat(3, 3, CvType.CV_32F);
464 
465         r.put(0, 0, Math.PI, 0, 0);
466 
467         Calib3d.Rodrigues(r, R);
468 
469         truth = new Mat(3, 3, CvType.CV_32F);
470         truth.put(0, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1);
471         assertMatEqual(truth, R, EPS);
472 
473         Mat r2 = new Mat();
474         Calib3d.Rodrigues(R, r2);
475 
476         assertMatEqual(r, r2, EPS);
477     }
478 
testRodriguesMatMatMat()479     public void testRodriguesMatMatMat() {
480         fail("Not yet implemented");
481     }
482 
testRQDecomp3x3MatMatMat()483     public void testRQDecomp3x3MatMatMat() {
484         fail("Not yet implemented");
485     }
486 
testRQDecomp3x3MatMatMatMat()487     public void testRQDecomp3x3MatMatMatMat() {
488         fail("Not yet implemented");
489     }
490 
testRQDecomp3x3MatMatMatMatMat()491     public void testRQDecomp3x3MatMatMatMatMat() {
492         fail("Not yet implemented");
493     }
494 
testRQDecomp3x3MatMatMatMatMatMat()495     public void testRQDecomp3x3MatMatMatMatMatMat() {
496         fail("Not yet implemented");
497     }
498 
testSolvePnPListOfPoint3ListOfPointMatMatMatMat()499     public void testSolvePnPListOfPoint3ListOfPointMatMatMatMat() {
500         Mat intrinsics = Mat.eye(3, 3, CvType.CV_32F);
501         intrinsics.put(0, 0, 400);
502         intrinsics.put(1, 1, 400);
503         intrinsics.put(0, 2, 640 / 2);
504         intrinsics.put(1, 2, 480 / 2);
505 
506         final int minPnpPointsNum = 4;
507 
508         MatOfPoint3f points3d = new MatOfPoint3f();
509         points3d.alloc(minPnpPointsNum);
510         MatOfPoint2f points2d = new MatOfPoint2f();
511         points2d.alloc(minPnpPointsNum);
512 
513         for (int i = 0; i < minPnpPointsNum; i++) {
514             double x = Math.random() * 100 - 50;
515             double y = Math.random() * 100 - 50;
516             points2d.put(i, 0, x, y); //add(new Point(x, y));
517             points3d.put(i, 0, 0, y, x); // add(new Point3(0, y, x));
518         }
519 
520         Mat rvec = new Mat();
521         Mat tvec = new Mat();
522         Calib3d.solvePnP(points3d, points2d, intrinsics, new MatOfDouble(), rvec, tvec);
523 
524         Mat truth_rvec = new Mat(3, 1, CvType.CV_64F);
525         truth_rvec.put(0, 0, 0, Math.PI / 2, 0);
526 
527         Mat truth_tvec = new Mat(3, 1, CvType.CV_64F);
528         truth_tvec.put(0, 0, -320, -240, 400);
529 
530         assertMatEqual(truth_rvec, rvec, EPS);
531         assertMatEqual(truth_tvec, tvec, EPS);
532     }
533 
testSolvePnPListOfPoint3ListOfPointMatMatMatMatBoolean()534     public void testSolvePnPListOfPoint3ListOfPointMatMatMatMatBoolean() {
535         fail("Not yet implemented");
536     }
537 
testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMat()538     public void testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMat() {
539         fail("Not yet implemented");
540     }
541 
testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBoolean()542     public void testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBoolean() {
543         fail("Not yet implemented");
544     }
545 
testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanInt()546     public void testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanInt() {
547         fail("Not yet implemented");
548     }
549 
testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanIntFloat()550     public void testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanIntFloat() {
551         fail("Not yet implemented");
552     }
553 
testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanIntFloatInt()554     public void testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanIntFloatInt() {
555         fail("Not yet implemented");
556     }
557 
testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanIntFloatIntMat()558     public void testSolvePnPRansacListOfPoint3ListOfPointMatMatMatMatBooleanIntFloatIntMat() {
559         fail("Not yet implemented");
560     }
561 
testStereoCalibrateListOfMatListOfMatListOfMatMatMatMatMatSizeMatMatMatMat()562     public void testStereoCalibrateListOfMatListOfMatListOfMatMatMatMatMatSizeMatMatMatMat() {
563         fail("Not yet implemented");
564     }
565 
testStereoCalibrateListOfMatListOfMatListOfMatMatMatMatMatSizeMatMatMatMatTermCriteria()566     public void testStereoCalibrateListOfMatListOfMatListOfMatMatMatMatMatSizeMatMatMatMatTermCriteria() {
567         fail("Not yet implemented");
568     }
569 
testStereoCalibrateListOfMatListOfMatListOfMatMatMatMatMatSizeMatMatMatMatTermCriteriaInt()570     public void testStereoCalibrateListOfMatListOfMatListOfMatMatMatMatMatSizeMatMatMatMatTermCriteriaInt() {
571         fail("Not yet implemented");
572     }
573 
testStereoRectifyUncalibratedMatMatMatSizeMatMat()574     public void testStereoRectifyUncalibratedMatMatMatSizeMatMat() {
575         fail("Not yet implemented");
576     }
577 
testStereoRectifyUncalibratedMatMatMatSizeMatMatDouble()578     public void testStereoRectifyUncalibratedMatMatMatSizeMatMatDouble() {
579         fail("Not yet implemented");
580     }
581 
testValidateDisparityMatMatIntInt()582     public void testValidateDisparityMatMatIntInt() {
583         fail("Not yet implemented");
584     }
585 
testValidateDisparityMatMatIntIntInt()586     public void testValidateDisparityMatMatIntIntInt() {
587         fail("Not yet implemented");
588     }
589 
testComputeCorrespondEpilines()590     public void testComputeCorrespondEpilines()
591     {
592         Mat fundamental = new Mat(3, 3, CvType.CV_64F);
593         fundamental.put(0, 0, 0, -0.577, 0.288, 0.577, 0, 0.288, -0.288, -0.288, 0);
594         MatOfPoint2f left = new MatOfPoint2f();
595         left.alloc(1);
596         left.put(0, 0, 2, 3); //add(new Point(x, y));
597         Mat lines = new Mat();
598         Mat truth = new Mat(1, 1, CvType.CV_32FC3);
599         truth.put(0, 0, -0.70735186, 0.70686162, -0.70588124);
600         Calib3d.computeCorrespondEpilines(left, 1, fundamental, lines);
601         assertMatEqual(truth, lines, EPS);
602     }
603 }
604