因为之接触过OpenCV的C++和Python版本,最近在逛官网的时候突然发现也有JS版的,但是网上的开发教程比较少,既然自己以前对CV还算比较了解就试试学习一下JS版的,毕竟现在移动端的JS很受欢迎。
工欲善其事,必先利其器。要使用JS版的CV就要先编译一下,因为官方没有真正意义上的JS版CV,都是从C++版本中编译过来的。
一、安装依赖项:
sudo apt-get update
sudo apt-get install python2.7
sudo apt-get install nodejs
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install git-core
sudo apt-get install default-jre
sudo apt-get install doxygen
sudo apt-get install nodejs
sudo apt-get install npm
二、在Linux下首先安装Emscripten。
为什么安装?因为这个能把C++的.o程序编译成.js(说法来源于网络)。
# Enter Home directory
cd ~
# Get the emsdk repo
git clone https://github.com/juj/emsdk.git
# Enter emsdk directory
cd emsdk
# Fetch the latest version of the emsdk (not needed the first time you clone)
git pull
# Download and install the latest SDK tools.
./emsdk install latest
这时因为国内网络问题就会出现卡死,导致下载失败。
这是需要手动下载一些包:(首先创建一个zips的文件夹用于存放安装包)
mkdir ~/emsdk/zips
因为主要是node.js下载不下来,因此可以在node.js的官网上找到自己需要的版本。https://nodejs.org/en/download/releases/
如果其他的下载不下来就可以在ternimal中找到地址下载,下载完成后将下载的包放入zips文件夹即可,重新运行上面的./emsdk install latest命令即可。然后继续:
# Make the "latest" SDK "active" for the current user. (writes ~/.emscripten file)
./emsdk activate latest
# Activate PATH and other environment variables in the current terminal
source ./emsdk_env.sh
如果不出意外应该就完成了安装,使用emcc - v命令查看emsdk的安装情况。
三、现在开始下载OpenCV并编译
# Get the OpenCV repo
git clone https://github.com/opencv/opencv.git
# Enter CV directory
cd opencv
# build
# JS version
python ./platforms/js/build_js.py build_js
# Web version
python ./platforms/js/build_js.py build_wasm --build_wasm
# Documents
python ./platforms/js/build_js.py build_js --build_doc
# Tests
python ./platforms/js/build_js.py build_js --build_test
接下来进行测试即可:
# Enter build directory
cd ~/opencv/build_js/bin
# Install global http-server
npm install http-server -g
# Start http Server
http-server
打开浏览器输入:http://localhost:8080/tests.html,查看结果。如果不能链接就表示配置失败,成功后的截图: