Skip to content

build aruco.DetectorParameters in Javascript #15514

@frastlin

Description

@frastlin
System information (version)
  • OpenCV => 4.1.1
  • Operating System / Platform => Windows 64 Bit with Ubuntu subsystem for Linux
  • Compiler => Emscripten
Detailed description

Hello,
I am attempting to build cv.aruco. DetectorParameters into Javascript, but receive the below error.

/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib/modules/js/bindings.cpp:4339:42: error: use of undeclared identifier 'Detectorcv'
        .constructor(select_overload<Ptr<Detectorcv::Parameters>()>(&cv::aruco::DetectorParameters::create))
                                         ^
/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib/modules/js/bindings.cpp:4339:65: error: expected a type
        .constructor(select_overload<Ptr<Detectorcv::Parameters>()>(&cv::aruco::DetectorParameters::create))
                                                                ^
/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib/modules/js/bindings.cpp:4340:54: error: expected '(' for function-style cast or type construction
        .smart_ptr<Ptr<cv::aruco::DetectorParameters>>("Ptr<aruco_DetectorParameters>")
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib/modules/js/bindings.cpp:4342:9: error: member reference base type 'const char [30]' is not a structure or union
        .property("adaptiveThreshWinSizeMin", &cv::aruco::DetectorParameters::adaptiveThreshWinSizeMin)
        ^~~~~~~~~
4 errors generated.
shared:ERROR: '/home/brandonkeithbiggs/emsdk/fastcomp/fastcomp/bin/clang++ -target asmjs-unknown-emscripten -D__EMSCRIPTEN_major__=1 -D__EMSCRIPTEN_minor__=38 -D__EMSCRIPTEN_tiny__=42 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -nostdsysteminc -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/include/libcxx -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/lib/libcxxabi/include -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/include/compat -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/include -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/include/libc -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/lib/libc/musl/arch/emscripten -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/local/include -DEMSCRIPTEN -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/js/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib/modules/js -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/core/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/flann/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/imgproc/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/photo/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/dnn/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/features2d/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/calib3d/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/objdetect/include -I/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/modules/video/include -I/mnt/c/Users/brandon/tests/emscripten/opencv_contrib/modules/aruco/include -I/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/include -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Winconsistent-missing-override -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -pthread -Qunused-arguments -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG -O2 -DNDEBUG -fPIE -std=c++11 -Wno-missing-prototypes -std=c++11 -c -mllvm -disable-llvm-optzns /mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib/modules/js/bindings.cpp -Xclang -disable-O0-optnone -Xclang -isystem/home/brandonkeithbiggs/emsdk/fastcomp/emscripten/system/include/SDL -c -o CMakeFiles/opencv_js.dir/bindings.cpp.o -emit-llvm' failed (1)
modules/js/CMakeFiles/opencv_js.dir/build.make:138: recipe for target 'modules/js/CMakeFiles/opencv_js.dir/bindings.cpp.o' failed
make[3]: *** [modules/js/CMakeFiles/opencv_js.dir/bindings.cpp.o] Error 1
make[3]: Leaving directory '/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib'
CMakeFiles/Makefile2:3785: recipe for target 'modules/js/CMakeFiles/opencv_js.dir/all' failed
make[2]: *** [modules/js/CMakeFiles/opencv_js.dir/all] Error 2
make[2]: Leaving directory '/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib'
CMakeFiles/Makefile2:3749: recipe for target 'modules/js/CMakeFiles/opencv.js.dir/rule' failed
make[1]: *** [modules/js/CMakeFiles/opencv.js.dir/rule] Error 2
make[1]: Leaving directory '/mnt/c/Users/brandon/tests/emscripten/opencv-4.1.1/build_with_aruco_and_calib'
Makefile:637: recipe for target 'opencv.js' failed
make: *** [opencv.js] Error 2
Traceback (most recent call last):
  File "./platforms/js/build_js.py", line 237, in <module>
    builder.build_opencvjs()
  File "./platforms/js/build_js.py", line 172, in build_opencvjs
    execute(["make", "-j", str(multiprocessing.cpu_count()), "opencv.js"])
  File "./platforms/js/build_js.py", line 23, in execute
    raise Fail("Child returned: %s" % retcode)
__main__.Fail: Child returned: 2
Steps to reproduce

I modified embindgen.py in the aruco section to be:

aruco = {'': ['detectMarkers', 'drawDetectedMarkers', 'drawAxis', 'estimatePoseSingleMarkers', 'estimatePoseBoard', 'estimatePoseCharucoBoard', 'interpolateCornersCharuco', 'drawDetectedCornersCharuco'],
        'aruco_Dictionary': ['get', 'drawMarker'],
        'aruco_Board': ['create'],
        'aruco_GridBoard': ['create', 'draw'],
        'aruco_CharucoBoard': ['create', 'draw'],
        'aruco_DetectorParameters': ['create'],
        }

Compiling without the:

        'aruco_DetectorParameters': ['create'],

Works great. Any ideas what these errors mean?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions