OpenCV.js で「cv.Mat is not a constructor」というエラーが発生する

2020/03/14

以下のように OpenCV.js を onload で実行していたんですが、成功する時と「cv.Mat is not a constructor」というエラーが発生する時がありました。リロードすると起きたり起きなかったりという症状です。


<body onload="execute()">
<script>
    function execute() {
        let mat = new cv.Mat();
        // OpenCV.js を使った処理
    }
</script>
</body>

調べたところ、以下のページに解決策が書いてありました。

https://stackoverflow.com/questions/56671436/cv-mat-is-not-a-constructor-opencv

cv['onRuntimeInitialized'] で OpenCV モジュールの初期化後の処理を登録できるみたいですね。以下のようにしたところ、エラーは発生しなくなりました。


<body onload="execute()">
<script>
    function execute() {
        cv['onRuntimeInitialized'] = () => {
            let mat = new cv.Mat();
            // OpenCV.js を使った処理
        }
    }
</script>
</body>

  このエントリーをはてなブックマークに追加    

<<「Web 開発」の記事一覧に戻る

関連記事