js: Add findHomography js bindings.

Removed constants from legacy C api and switched out header with shorter version.

Removed blank line that was failing CI.
pull/14305/head
Cameron Martin 6 years ago
parent d8c5bd92ae
commit 0ae053fdf8
  1. 4
      modules/calib3d/CMakeLists.txt
  2. 4
      modules/js/src/embindgen.py
  3. 43
      modules/js/test/test_calib3d.js
  4. 1
      modules/js/test/tests.html
  5. 4
      modules/js/test/tests.js
  6. 2
      platforms/js/build_js.py

@ -3,4 +3,6 @@ set(debug_modules "")
if(DEBUG_opencv_calib3d)
list(APPEND debug_modules opencv_highgui)
endif()
ocv_define_module(calib3d opencv_imgproc opencv_features2d ${debug_modules} WRAP java python)
ocv_define_module(calib3d opencv_imgproc opencv_features2d ${debug_modules}
WRAP java python js
)

@ -142,6 +142,8 @@ features2d = {'Feature2D': ['detect', 'compute', 'detectAndCompute', 'descriptor
'BFMatcher': ['isMaskSupported', 'create'],
'': ['drawKeypoints', 'drawMatches']}
calib3d = {'': ['findHomography']}
def makeWhiteList(module_list):
wl = {}
for m in module_list:
@ -152,7 +154,7 @@ def makeWhiteList(module_list):
wl[k] = m[k]
return wl
white_list = makeWhiteList([core, imgproc, objdetect, video, dnn, features2d])
white_list = makeWhiteList([core, imgproc, objdetect, video, dnn, features2d, calib3d])
# Features to be exported
export_enums = False

@ -0,0 +1,43 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.
if (typeof module !== 'undefined' && module.exports) {
// The envrionment is Node.js
var cv = require('./opencv.js'); // eslint-disable-line no-var
}
QUnit.module('Camera Calibration and 3D Reconstruction', {});
QUnit.test('constants', function(assert) {
assert.strictEqual(typeof cv.LMEDS, 'number');
assert.strictEqual(typeof cv.RANSAC, 'number');
assert.strictEqual(typeof cv.RHO, 'number');
});
QUnit.test('findHomography', function(assert) {
let srcPoints = cv.matFromArray(4, 1, cv.CV_32FC2, [
56,
65,
368,
52,
28,
387,
389,
390,
]);
let dstPoints = cv.matFromArray(4, 1, cv.CV_32FC2, [
0,
0,
300,
0,
0,
300,
300,
300,
]);
const mat = cv.findHomography(srcPoints, dstPoints);
assert.ok(mat instanceof cv.Mat);
});

@ -29,6 +29,7 @@
<script type="application/javascript" src="test_objdetect.js"></script>
<script type="application/javascript" src="test_video.js"></script>
<script type="application/javascript" src="test_features2d.js"></script>
<script type="application/javascript" src="test_calib3d.js"></script>
<script type='text/javascript'>
QUnit.config.autostart = false;

@ -45,7 +45,9 @@ testrunner.run(
{
code: 'opencv.js',
tests: ['test_mat.js', 'test_utils.js', 'test_imgproc.js',
'test_objdetect.js', 'test_video.js', 'test_features2d.js'],
'test_objdetect.js', 'test_video.js', 'test_features2d.js',
'test_calib3d.js'
],
},
function(err, report) {
console.log(report.failed + ' failed, ' + report.passed + ' passed');

@ -115,7 +115,7 @@ class Builder:
"-DWITH_QUIRC=OFF",
"-DBUILD_ZLIB=ON",
"-DBUILD_opencv_apps=OFF",
"-DBUILD_opencv_calib3d=ON", # No bindings provided. This module is used as a dependency for other modules.
"-DBUILD_opencv_calib3d=ON",
"-DBUILD_opencv_dnn=ON",
"-DBUILD_opencv_features2d=ON",
"-DBUILD_opencv_flann=OFF",

Loading…
Cancel
Save