Einführung in OpenCV-JavaScript

Ammar Ali 15 Februar 2024
Einführung in OpenCV-JavaScript

In diesem Tutorial wird OpenCV in JavaScript unter Verwendung der opencv.js-Bindung von OpenCV erläutert.

Einführung in OpenCV-JavaScript

OpenCV wird in Bildverarbeitungs- und Computer-Vision-Anwendungen verwendet. OpenCV unterstützt viele Programmiersprachen wie Python, Java und C++, die wir zum Erstellen von Computer-Vision-Anwendungen verwenden können.

In der Webentwicklung können wir Websites mit Computer Vision- und Bildverarbeitungsanwendungen erstellen, indem wir die opencv.js-Bindung von OpenCV verwenden. Darüber hinaus können wir OpenCV mit JavaScript verwenden, um Websites für Multimedia-Verarbeitungsanwendungen zu erstellen.

Wir können eine Teilmenge von OpenCV-Funktionen für die Webentwicklung verwenden, wie die Vision-Funktionen von OpenCV. Um jedoch OpenCV-Funktionen auf einer Webseite zu verwenden, müssen wir die Bindung opencv.js mit der Webseite unter Verwendung des <script>-Tags von HTML verknüpfen.

Wir können die Adresse der Datei verlinken oder sie herunterladen und dann mit der .html-Datei verlinken.

Wenn wir die Adresse der Datei in der .html-Datei verlinken, verlangen wir, dass das Internet die Datei jedes Mal lädt, wenn wir die .html-Datei ausführen. Wenn wir jedoch die Datei opencv.js herunterladen und mit der Datei .html verknüpfen, wird das Internet nicht benötigt, um die Datei zu führen.

Beispielsweise können wir die folgende Codezeile verwenden, um die Datei opencv.js zu verknüpfen, indem wir die Adresse der Datei mit dem Tag <script> in der Datei .html verwenden. Siehe Code unten.

<script async src="https://docs.opencv.org/4.5.0/opencv.js" type="text/javascript"></script>

Im obigen Code sehen wir auch die Versionsnummer von OpenCV in der Linkadresse, die wir je nach Version ändern können, die wir verwenden möchten. Schließlich müssen wir einen grafischen Container verwenden, um unser Bild auf einer Webseite anzuzeigen.

Wir können das Tag <canvas> von HTML verwenden, das ein grafischer Container ist, um unser Bild mit der Funktion imshow() von OpenCV anzuzeigen. Wir müssen die id des canvas-Containers und das gelesene Bild mit der imread()-Funktion innerhalb der imshow()-Funktion übergeben, um es anzuzeigen.

Lassen Sie uns beispielsweise eine einfache Webseite mit HTML erstellen und die Funktionen imread() und imshow() von OpenCV verwenden, um ein Bild auf einer Webseite zu lesen und anzuzeigen. Siehe Code unten.

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Introduction to OpenCV JavaScript</title>
</head>

<body>
  <h2>Introduction to OpenCV JavaScript</h2>
  <div>
    <div class="inputoutputDiv">
      <img id="SourceImage" alt="" />
      <div class="caption">imagesrc <input type="file" id="InputfileName" name="file" /></div>
    </div>
    <div class="inputoutputDiv">
      <canvas id="canvasOutputContainer"></canvas>
      <div class="caption">canvasOutputContainer</div>
    </div>
  </div>

  <script type="text/javascript">
    let imgElement = document.getElementById('SourceImage');
    let inputElement = document.getElementById('InputfileName');
    inputElement.addEventListener('change', (e) => {
      imgElement.src = URL.createObjectURL(e.target.files[0]);
    }, false);
    imgElement.onload = function () {
      let mat = cv.imread(imgElement);
      cv.imshow('canvasOutputContainer', mat);
      mat.delete();
    };
  </script>
  <script async src="https://docs.opencv.org/4.5.0/opencv.js" type="text/javascript"></script>
</body>

</html>

Ausgang:

Einführung in opencv Javascript - Ausgabe

Um den obigen Code auszuführen, müssen wir ihn in einer .html-Datei speichern und mit einem Webbrowser öffnen.

Wir haben die Funktion onload() im obigen Code verwendet, die ausgeführt wird, wenn wir das Eingabebild laden, und innerhalb dieser Funktion haben wir das Bild mit OpenCV gelesen und angezeigt.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - OpenCV JS