Computer vision, in your language.
From pixels to an understanding of the scene. Bring OpenCV to the browser and Node.js, with typed APIs and a visual guide to the ideas behind them.
Eight tentative matches include two inconsistent pairs, shown in orange.
A transform proposed from an unsuitable sample does not align the plane. RANSAC tries additional small samples.
Project each reference point and compare it with its observed partner. Orange arrows expose the two large residuals; mint rings mark agreeing pairs.
The accepted mapping bends a rectangular grid into perspective. Every grid intersection uses the same projective transform as the inlier points.
Refine the mapping using the accepted correspondences.
Illustrative example. The stages explain the method; they are not a live OpenCV execution.
A library you can inspect
Section titled “A library you can inspect”@banou/opencv-wasm compiles OpenCV and its contrib modules directly from C++ to WebAssembly. The API includes image processing, features, calibration, tracking, machine learning, DNN inference and more. Your editor gets parameter descriptions, exact overloads and distinct native handle types.
import { CV_8UC1, initOpenCV, Mat, matFromArray, THRESH_BINARY, threshold } from '@banou/opencv-wasm'await initOpenCV()using image = matFromArray(2, 3, CV_8UC1, [0, 30, 90, 150, 220, 255])using binary = new Mat()threshold(image, binary, 127, 255, THRESH_BINARY)console.log(binary.data.slice()) // [0, 0, 0, 255, 255, 255]This example runs in Node with the installed build. Browser bundlers should pass the WASM asset URL explicitly; the quickstart shows the complete setup.
The algorithm atlas
Annotated diagrams, practical uses, tuning parameters and failure cases. Follow the data through each method.
Learn by seeing →Look upThe complete reference
Generated from the declarations you install. Search functions, classes and types, then inspect their exact signatures.
Browse the API →ExperimentReal pixels, real WASM
Explore filters, edges, thresholds and morphology. Change parameters and see the result in a browser worker.
Try an algorithm →MigrateComing from Python
Keep familiar computer vision concepts while adopting destination matrices, typed results and explicit resource ownership.
Read the migration guide →Know what is supported
Section titled “Know what is supported”This is a CPU build with WebAssembly SIMD. Browser and Node use the same native engine. Models, fonts and OCR data are supplied by your application. Python name coverage is measured separately from behavior and signature compatibility; the compatibility page records both the capabilities and the limits.