表示画像Opencv.jsを読みます

  書き込みプログラムにOpencv.jsエンジニアというのJavaScript、HTMLファイル内の画像処理領域のフロントエンド。OpenCVのコードを書く同様の言語としてPythonとJSの経験は、より適切だったでしょう。
  すべての前に、JavaScriptとOpenCVのを理解する必要があり、OpenCVのを学ぶ(C ++どこにある誰の世界で最高のを)学ぶためにはるかに簡単にPython言語を、お勧めします。次は、基本的なプロジェクトopencv.jsを含むデータベースを分析するための方法を構成する方法で爆発しました。

Opencv.JSライブラリ

  opencv.jsは、ライブラリですが、ライブラリ自体は(わずか1ブロックの少しの例を与える)の公式文書を提供していません。自然opencv.jsライブラリは、OpenCVのライブラリのC ++版、コンパイル済みのJSファイルです。全体のプロセスはより複雑である、それはJSファイルをコンパイル直接ダウンロード他の人をお勧めします。
ここに画像を挿入説明

  JSライブラリは、すべての外部JSファイルのhtmlファイルがフォルダ内のHTMLファイルとopencv.jsのフロントエンドの基本的な操作にリンクされた後に、快適に持ってすることができます。
  次のようにこの外国刑のjsファイルを使用してコードのhtmlファイルは以下のとおりです。

<script async src="opencv.js" type="text/javascript"></script>

  非同期IOは、操作がブロックにプログラムを引き起こすことはありませんので、とき、表現は非同期ロードの特性を表現したものです。進むべき道opencv.js使用することができ、ロードされたライブラリファイルの後。
  あなたはopencv.jsライブラリがロードされたときに、視覚的に確認したい場合は、コールバック関数にonloadイベントコード内のプロパティ、ポイントを増加させ、そして同じ非同期メカニズムでNode.jsのことができます。

<script async src="opencv.js"  onload="opencvLoad()" type="text/javascript"></script>

出力画像は読み込みOpencv.JS

  画像処理プロセスは、一般的にそれは何ですか?入力画像処理方法2.コールXX 3.出力画像:ビューは何も以上のプログラマの視点から。jsの中に真のより多くの何もありません。
  まず、入力画像です。機能を読み取るopencv.js画像ファイルは、内部関数imreadのJSに対して直接ではなく、第一のHTMLファイルによりファイルを読み取る操作を読み、その後関数imread変数でマトリックスに導入します:

let mat=cv.imread(imgSrcElement);

  ステップ2は、画像処理は、ライブラリの関数を呼び出すことによって行われ、この変更ではありません。
  ステップ3も特別です。OpenCVの他の版で(画像の処理後)変数行列を出力する、出力ウィンドウを配置することができます。しかし、単に画像出力を実現するためのコンポーネントを使用して、新しいHTMLウィンドウ、HTMLキャンバスが作成することはできません。組み立てもHTMLキャンバスとして知られているキャンバスは、ページ内の新しいイメージをマッピングに専念します:

cv.imshow('canvasOutput',mat);

  コード上に見られるように、opencv.js新しいマトリックスは、可変成分キャンバスによって表示されます。

HTMLページ:

  IMG要素は、最初のページにあるファイルアップロードコンポーネントに追加されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>OpenCV.js</title>
</head>

<body>
<h2>Program of OpenCV.js</h2>
<p id="status">OpenCV.js is loading...</p>
<div>
  <div class="inputoutput">
    <img id="imageSrc" alt="No Image" />
    <div class="caption">imageSrc <input type="file" id="fileInput" name="file" /></div>
  </div>
</div>

</body>
</html>

ここに画像を挿入説明
  そして、キャンバスのコンポーネントを追加します。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello OpenCV.js</title>
<style>
.inputoutput{
  float: left;/*左侧浮动展示*/
}
</style>
</head>
<body>
<h2>Program of OpenCV.js</h2>
<p id="status">OpenCV.js is loading...</p>
<div>
  <div class="inputoutput">
    <img id="imageSrc" alt="No Image" />
    <div class="caption">imageSrc <input type="file" id="fileInput" name="file" /></div>
  </div>
  <div class="inputoutput">
    <canvas id="canvasOutput" ></canvas>
    <div class="caption">canvasOutput</div>
  </div>
</div>

</body>
</html>

JavaScriptコード:

  次のようにJavaScriptのコードは次のとおりです。

<script type="text/javascript">
  var imgSrcElement=document.getElementById('imageSrc');
  var imageInput=document.getElementById('fileInput');

  imageInput.addEventListener('change',(e)=>{
    imgSrcElement.src=URL.createObjectURL(e.target.files[0]);
  })

  // 因为是异步操作,所以需要onload等图像加载完毕后执行,也是回调
  imgSrcElement.onload=function(){
    // 读取获取矩阵(步骤1)
    let mat=cv.imread(imgSrcElement);
    // 输出获取矩阵(步骤3)
    cv.imshow('canvasOutput',mat);
    // 调用delete释放堆的内存
    mat.delete();
  }

var opencvLoad=function(){
  document.getElementById('status').innerHTML='opencv is ready';//回调函数,用来显示opencv.js加载完成
}
</script>

<!-- 异步加载,不对程序进行阻塞 -->
<script async  src="opencv.js"  onload="opencvLoad()" type="text/javascript"></script>


結果:

ここに画像を挿入説明
  あなたはすでにロードopencv.js見ることができます赤いボックスで、操作を開始することができます。お使いのコンピュータから画像を検索し、ファイルを選択]をクリックします。
ここに画像を挿入説明

  期待に沿った結果。キャンバスキャンバスのソースファイルと出力と同じイメージで。
  次のように全体のコードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello OpenCV.js</title>
<style>

.inputoutput{
  float: left;
}
</style>
</head>
<body>
<h2>Program of OpenCV.js</h2>
<p id="status">OpenCV.js is loading...</p>
<div>
  <div class="inputoutput">
    <img id="imageSrc" alt="No Image" />
    <div class="caption">imageSrc <input type="file" id="fileInput" name="file" /></div>
  </div>
  <div class="inputoutput">
    <canvas id="canvasOutput" ></canvas>
    <div class="caption">canvasOutput</div>
  </div>
</div>
<script type="text/javascript">
  var imgSrcElement=document.getElementById('imageSrc');
  var imageInput=document.getElementById('fileInput');

  imageInput.addEventListener('change',(e)=>{
    imgSrcElement.src=URL.createObjectURL(e.target.files[0]);
  })

  // 因为是异步操作,所以需要onload等图像加载完毕后执行,也是回调
  imgSrcElement.onload=function(){
    // 读取获取矩阵(步骤1)
    let mat=cv.imread(imgSrcElement);
    // 输出获取矩阵(步骤3)
    cv.imshow('canvasOutput',mat);
    // 调用delete释放堆的内存
    mat.delete();
  }

var opencvLoad=function(){
  document.getElementById('status').innerHTML='opencv is ready';//回调函数,用来显示opencv.js加载完成
}
</script>

<!-- 异步加载,不对程序进行阻塞 -->
<script async  src="opencv.js"  onload="opencvLoad()" type="text/javascript"></script>
</body>
</html>

公開された54元の記事 ウォン称賛18 ビュー9563

おすすめ

転載: blog.csdn.net/m0_37872216/article/details/102916368