Steps
In this tutorial, you will learn how to include and start to use opencv.js
inside a web page. You can get a copy of opencv.js
from opencv-{VERSION_NUMBER}-docs.zip
in each release, or simply download the prebuilt script from the online documentations at "https://docs.opencv.org/{VERSION_NUMBER}/opencv.js" (For example, https://docs.opencv.org/4.5.0/opencv.js. Use 4.x
if you want the latest build). You can also build your own copy by following the tutorial Build OpenCV.js.
Create a web page
First, let's create a simple web page that is able to upload an image.
To run this web page, copy the content above and save to a local index.html file. To run it, open it using your web browser.
- Note
- It is a better practice to use a local web server to host the index.html.
Include OpenCV.js
Set the URL of opencv.js
to src
attribute of <script> tag.
- Note
- For this tutorial, we host
opencv.js
at same folder as index.html. You can also choose to use the URL of the prebuiltopencv.js
in our online documentation.
Example for synchronous loading:
You may want to load opencv.js
asynchronously by async
attribute in <script> tag. To be notified when opencv.js
is ready, you can register a callback to onload
attribute.
Example for asynchronous loading
Use OpenCV.js
Once opencv.js
is ready, you can access OpenCV objects and functions through cv
object.
For example, you can create a cv.Mat from an image by cv.imread.
- Note
- Because image loading is asynchronous, you need to put cv.Mat creation inside the
onload
callback.
Many OpenCV functions can be used to process cv.Mat. You can refer to other tutorials, such as Image Processing, for details.
In this tutorial, we just show a cv.Mat on screen. To show a cv.Mat, you need a canvas element.
You can use cv.imshow to show cv.Mat on the canvas.
Putting all of the steps together, the final index.html is shown below.
- Note
- You have to call delete method of cv.Mat to free memory allocated in Emscripten's heap. Please refer to Memory management of Emscripten for details.
Try it