TypeScript icon, indicating that this package has built-in type declarations

4.1.209 • Public • Published


Tested Released Supported node versions Supported electron versions

Simple installation Opencv versions for node with pre-compiled bindings



  • Windows, Linux , MacOS
  • node 12,14,15,16,17,18,19,20,21
  • electron 8,9,10,11,12,13,14,15,16,17,18,19,22,23,24,25
  • currently arh x64 (possible M1, arm64 and others if were available hosts with the type of processes)

How to install

npm i opencv4nodejs-prebuilt-install

check supporting platforms and processes!

  • prebuilt in node_modules/opencv4nodejs-prebuilt-install/build

Quick Start with prebuild

const cv = require('opencv4nodejs-prebuilt-install');

With TypeScript

import * as cv from 'opencv4nodejs-prebuilt-install'

Local compiling

Set your own properties inside of package.json for opencv4nodejs up to 4.6.0 depends on necessary versions and flags

  "opencv4nodejs": {
    "autoBuildWithoutContrib": 1,
    "autoBuildOpencvVersion": "4.1.1",
    "disableAutoBuild": 1
  • Then for building opencv for current processor
npm run create_opencvlib

Result in folder osOpencvWorlds/*/*.tar

  • and then for building opencv for current node with have been prepared files for processor
npm run create_opencvnode_prebuild

Result in folder opencv/build/bin for windows or in opencv/build/lib for linux and darwin

Add bindings to native methods of opencv

Create fork of the repo and add necessary changes then create poll request to the repo and i will recreate libs

For example i was able to add method invert recently

  • added to
Nan::SetMethod(target, "invert", Invert);
Nan::SetMethod(target, "invertAsync", InvertAsync);

NAN_METHOD(Core::Invert) {
 FF::syncBinding<CoreBindings::Invert>("Core", "Invert", info);

NAN_METHOD(Core::InvertAsync) {
 FF::asyncBinding<CoreBindings::Invert>("Core", "Invert", info);
  • added to core.h
 static NAN_METHOD(Invert);
 static NAN_METHOD(InvertAsync);
  • added to coreBinding.h
 class Invert : public CvClassMethodBinding<Mat> {
  void createBinding(std::shared_ptr<FF::Value<cv::Mat>> self) {
         auto flags = opt<FF::IntConverter>("flags", 0);
   auto dst = ret<Mat::Converter>("dst");

   executeBinding = [=]() {
    cv::invert(self->ref(), dst->ref(), flags->ref());
  • added to cv.d.ts
export function invert(mat: Mat, flags?: number): Mat;
export function invertAsync(mat: Mat, flags?: number): Promise<Mat>;

Package Sidebar


npm i opencv4nodejs-prebuilt-install

Weekly Downloads






Unpacked Size

10.2 MB

Total Files


Last publish


  • udarrr