[英]opencv.js properties&methods are not accessible from a function
我使用托管的 opencv.js 有以下简单的html
文件:
<!DOCTYPE html>
<html>
<head>
<script
async
src="https://docs.opencv.org/master/opencv.js"
onload="onOpenCvLoaded();"
type="text/javascript"
></script>
</head>
<body>
<script>
function onOpenCvLoaded() {
console.log(cv);
test(cv);
}
function test() {
console.log(new cv.Mat());
}
</script>
</body>
</html>
我希望在控制台中看到一个新的 Mat 实例,但我得到了:
Uncaught TypeError: cv.Mat is not a constructor
at test (test.html:18)
at onOpenCvLoaded (test.html:15)
at HTMLScriptElement.onload (test.html:9)
test @ test.html:18
onOpenCvLoaded @ test.html:15
onload @ test.html:9
但是,如果我直接在控制台中键入,则new cv.Mat()
起作用。 里面发生了什么,我怎样才能让 new cv.Mat() 在test
函数中工作?
我找到了提供答案的链接: https : //dev.to/kjunichi/requireopencvjs-is-not-enough-for-using-opencvjs-8ff
在cv
完全初始化时执行一个函数:
cv['onRuntimeInitialized']=()=>{
let mat = new cv.Mat();
console.log(mat.size());
mat.delete();
};
您也可以在加载 opencv.js 文件时使用 onload 函数,例如function onLoad(){ onRuntimeinitialized = main;
当 opencv 准备好时,您的主要功能将被执行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.