OpenCV JavaScript の紹介

Ammar Ali 2024年2月15日
OpenCV JavaScript の紹介

このチュートリアルでは、OpenCV の opencv.js バインディングを使用して JavaScript で OpenCV について説明します。

OpenCV JavaScript の紹介

OpenCV は、画像処理およびコンピューター ビジョン アプリケーションで使用されています。 OpenCV は、コンピューター ビジョン アプリケーションの構築に使用できる Python、Java、C++ などの多くのプログラミング言語をサポートしています。

Web 開発では、OpenCV の opencv.js バインディングを使用して、コンピューター ビジョンと画像処理アプリケーションで Web サイトを構築できます。 さらに、JavaScript で OpenCV を使用して、マルチメディア処理アプリケーション用の Web サイトを構築できます。

OpenCV のビジョン関数のように、Web 開発に OpenCV 関数のサブセットを使用できます。 ただし、Web ページで OpenCV 関数を使用するには、HTML の <script> タグを使用して opencv.js バインディングを Web ページにリンクする必要があります。

ファイルのアドレスをリンクすることも、ダウンロードしてから .html ファイルにリンクすることもできます。

.html ファイル内のファイルのアドレスをリンクすると、.html ファイルを実行するたびにインターネットにファイルをロードする必要があります。 ただし、opencv.js ファイルをダウンロードして .html ファイルとリンクすると、ファイルをリードするためにインターネットは必要ありません。

たとえば、次のコード行を使用して、.html ファイル内の <script> タグを使用して、ファイルのアドレスを使用して opencv.js ファイルをリンクできます。 以下のコードを参照してください。

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

上記のコードでは、リンク アドレスに OpenCV のバージョン番号も表示されます。これは、使用するバージョンに応じて変更できます。 最後に、Web ページに画像を表示するには、グラフィカル コンテナーを使用する必要があります。

HTML の <canvas> タグを使用できます。これは、OpenCV の imshow() 関数を使用して画像を表示するためのグラフィカル コンテナーです。 canvas コンテナの id と、imshow() 関数内の imread() 関数で読み取った画像を渡して表示する必要があります。

たとえば、HTML を使用して簡単な Web ページを作成し、OpenCV の imread() および imshow() 関数を使用して、Web ページ上の画像を読み取り、表示してみましょう。 以下のコードを参照してください。

<!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>

出力:

opencv javascript入門 - 出力

上記のコードを実行するには、.html ファイルに保存し、Web ブラウザーで開く必要があります。

上記のコードで onload() 関数を使用しました。この関数は、入力画像をロードするときに実行されます。この関数内では、OpenCV を使用して画像を読み取り、表示しました。

著者: 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

関連記事 - OpenCV JS