繁体   English   中英

无法从函数访问 opencv.js 属性和方法

[英]opencv.js properties&methods are not accessible from a function

我使用托管的 o​​pencv.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM