JavaScript への移植: 「公開名 'projectPoints' を 2 回登録できません」
私は次のことをしました:
opencv/platforms/js/build_js.py の def get_build_flags(self) に以下を追加しました: flags += "-s USE_PTHREADS=0 "
def get_cmake_cmd(self): of opencv/platforms/js/build_js.py:
-DBUILD_opencv_calib3d
setでビルド フラグを有効にしました。ON
次の def get_cmake_cmd(self): を opencv/platforms/js/build_js.py に追加しました。
-DOPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
js
opencv/modules/calib3d/CMakeLists.txt の WRAP リストの末尾にある ocv_define_module 内に追加しました。opencv/modules/features2d/CMakeLists.txt と opencv_contrib/modules/aruco/CMakeLists.txt にも ocv_define_module に "js" パラメータを追加しました。solvePnP
opencv/modules/js/src/embindgen.py の calib3d モジュールに「projectPoints」を追加しました
calib3d = {'': ['findHomography',' calibrationCameraExtended', 'drawFrameAxes', 'getDefaultNewCameraMatrix', 'initUndistortRectifyMap', 'solvePnP','projectPoints']}
- opencv/modules/js/src/embindgen.py の makeWhiteList に calib3d モジュールを追加しました
white_list = makeWhiteList([core, imgproc, objdetect, video, dnn, features2d, photo, aruco, calib3d])
「using namespace aruco;」を追加しました。opencv/modules/js/src/core_bindings.cpp で
次のコマンドを使用して OpenCV.js をビルドしました: sudo python ./platforms/js/build_js.py build_js --emscripten_dir=${EMSCRIPTEN} --clean_build_dir --build_test
これらのラッパーを追加する前は、エラーなしで完全にコンパイルされていました。私のtests.htmlには、次のメッセージがあります。
Downloading...
tests.html:61 Running...
tests.html:61 Exception thrown, see JavaScript console
opencv.js:24 Uncaught
BindingError
message: "Cannot register public name 'projectPoints' twice"
name: "BindingError"
stack: "BindingError: Cannot register public name 'projectPoints' twice↵ at BindingError.<anonymous>
オーバーロード関数が JavaScript への移植を妨げているようです。
どうすれば修正できますか?
よろしくお願いします。