3 回答
TA贡献1843条经验 获得超7个赞
opencv.js 在真正初始化之前加载并触发 onload 事件。为了等到 opencv.js 真正准备好,opencv.js 提供了一个挂机“onRuntimeInitialized”。像这样使用它:
function openCvReady() {
cv['onRuntimeInitialized']=()=>{
// do all your work here
};
}
TA贡献1820条经验 获得超2个赞
确保脚本真正加载。如果错误是“cv is not defined”,那么要么删除async脚本标签中的 要么添加这个(或者只是标签中的一个onload属性<script>)
script.addEventListener('load', () => {
在 WASM 构建(并且只有 WASM 构建)中,cv 不会立即可用,因为 WASM 是在运行时编译的。将启动功能分配给cv.onRuntimeInitialized。
请注意,WASM 版本应该更快;但是,它会产生一些启动开销(几 CPU 秒)。非 WASM 根本不调用onRuntimeInitialized。
要检查这两种情况,可以这样做
if (cv.getBuildInformation)
{
console.log(cv.getBuildInformation());
onloadCallback();
}
else
{
// WASM
cv['onRuntimeInitialized']=()=>{
console.log(cv.getBuildInformation());
onloadCallback();
}
}
添加回答
举报