快速創建第一個 opencv.js 項目


opencv.js 的一些基礎知識,可以在【https://zhuanlan.zhihu.com/p/50428738】這篇文章以及 opencv 官網 【https://docs.opencv.org/3.3.1/df/d0a/tutorial_js_intro.html】上了解,這里不做贅述。

簡單說一下創建 opencv.js 項目的步驟:

  1. 通過好多軟件,將 opencv 庫編譯成 opencv.js。
  2. 在項目中引用編譯好的 opencv.js。
  3. 編寫代碼,運行。

opencv.js 類似於 C++ 中的 STL,它為我們提供 opencv 常見函數的接口。

但 opencv 官網並沒有提供提供 opencv.js 下載地址,需要用戶在官網下載 opencv 庫后,自行編譯為 opencv.js。

編譯過程較繁瑣,所以我們直接使用知乎大神編譯好的。

版本為 opencv3.4.2,下載地址:【密碼:r5wh(感謝大佬)。

 

第一步,將下載好的文件復制到 javaweb 項目中

 

 第二步,創建 html 文件,並粘貼以下代碼(實現圖片的讀入與展示)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>toGray</title>
    
    <!--兩張圖片格式為左浮動,處在一行-->
    <style type="text/css"> .InputOutput{ float: left; margin: 10px;
        }
    </style>
</head>
<body>
    <!--若 opencv.js 文件加載成功,則會顯示“opencv.js is ready.”-->
    <p id="status">opencv.js is loading...</p>
    
    <!--圖片讀入區域-->
    <div class="InputOutput">
        <div class="caption">srcImg<input type="file" id="inputFile" name="file"/></div>
        <img id="srcImg" alt="No Image"/>       
    </div>
    
    <!--結果展示區域-->
    <div class="InputOutput">
        <div class="caption">dstImg</div>
        <canvas id="dstImg"></canvas>
    </div>
    
    <!--讀入圖片,並在 canvas 中顯示-->
    <script type="text/javascript">
        <!--讀入圖片--> let imgElement=document.getElementById("srcImg"); let fileElement=document.getElementById("inputFile"); fileElement.addEventListener("change", (e) => {imgElement.src = URL.createObjectURL(e.target.files[0]);}, false); <!-- 顯示 --> imgElement.onload=function(){ let src=cv.imread(imgElement); cv.imshow('dstImg', src); src.delete(); }; <!--成功加載 opencv.js 后,status 標簽會顯示“opencv.js is ready.”-->
        function onOpenCvReady(){ document.getElementById("status").innerHTML="opencv.js is ready."; } </script>
    <script async src="opencvjs/opencv.js" onload="onOpenCvReady();" type="text/javascript"></script>
</body>
</html>

 

第三步,保存,運行

 

說是快速創建,就真的快速創建,原理都不講的(狗頭保命)。

附上 opencv 官網這部分內容的詳細介紹:【https://docs.opencv.org/3.3.1/d0/d84/tutorial_js_usage.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM