foo123/FILTER.js

Video and Image Processing and Computer Vision Library similar to OpenCV in pure JavaScript (Browser and Nodejs)

What it solves

FILTER.js is a pure JavaScript library designed to handle image and video processing, filtering, and computer vision tasks directly in the browser or in Node.js. It provides a comprehensive set of tools to manipulate visual data without requiring heavy external dependencies.

How it works

The library uses an Image class as a proxy for visual data and provides 14 generic filter types (such as ColorMatrix, ConvolutionMatrix, and Morphological filters) along with various plugins. To ensure high performance, it leverages several hardware acceleration technologies:

  • CPU Parallel Processing: Uses Web Workers and Node.js processes for multi-threaded execution.
  • GPU Parallel Processing: Utilizes WebGL and GLSL filters for hardware acceleration.
  • WebAssembly (WASM): Employs assembly-coded filters for faster execution.

Who it’s for

Developers who need to implement image or video manipulation, visual effects, or basic computer vision features in JavaScript environments, whether for web applications or server-side Node.js apps.

Highlights

  • Cross-Platform: Works in both browsers (via HTML5 Canvas) and Node.js.
  • Hardware Acceleration: Transparently mixes CPU and GPU filters for optimal performance.
  • Extensible: Supports custom builds where developers can select only the necessary filters and plugins to reduce bundle size.
  • Broad Filter Set: Includes implementations for grayscale, blur, emboss, and frequency domain filters.

Related

  • Project
  • Project
  • Project
  • Project
  • Project