我正在尝试构建一个简单的 web/js 应用程序来检测相机上的图像。我已经使用OpenCV在iOS和Android上完成了此操作,所以我的明显选择是使用OpenCV.js(最新版本)。
我构建了opencv.js如教程 https://docs.opencv.org/3.4.1/d4/da1/tutorial_js_setup.html,并创建了简单的应用程序,将色彩空间从相机更改为灰度并将其显示在画布上。
但是我不知道如何使用ORB,或者它只是不包含在opencv.js构建中。当我尝试执行以下操作时:let orb = new cv.ORB()
我得到了
cv.ORB 不是构造函数
我也尝试以不同的方式使用它,就像在pythoncv.ORB_create
中一样,但结果相同。docs.opencv上没有这方面的教程。我不确定它是否应该以不同的方式分配,或者它在构建中丢失。
我在opencv/platforms/js/build_js.py中启用了这些选项:
"-DBUILD_opencv_calib3d=On","-DBUILD_opencv_dnn=ON","-DBUILD_opencv_features2d=ON","-DBUILD_opencv_flann=On","-DBUILD_opencv_ml=On",
但没有效果。当我分析来自建筑物的日志时,我没有找到来自 features2d 的日志,例如
[ 33%] 构建 CXX 对象模块/核心/CMakeFiles/****
也许这就是问题所在。但是我已经启用了所有必需的选项 - 谁能告诉我我还能做错什么?
现在(2018 年 7 月)opencv.js 有一个非常小的实现,他们没有将整个 opencv 库移植到 js。 你没有球体。
截至 2021 年 4 月,opencv.js 拥有 ORB、FAST 等等。 opencv_js.config.py 有一个可用函数的列表。
并且有使用contrib模块构建自己的taylor opencv版本的说明: https://docs.opencv.org/3.4/d4/da1/tutorial_js_setup.html