Package Exports
- opencv4nodejs-prebuilt-install
- opencv4nodejs-prebuilt-install/lib/opencv4nodejs.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (opencv4nodejs-prebuilt-install) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
opencv4nodejs-prebuilt-install
Simple installation Opencv versions for node with pre-compiled bindings
Cross-platform!
Supports
- 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",
"autoBuildFlags": "-DBUILD_opencv_world=1 -DBUILD_LIST=core,highgui,videoio -DOPENCV_FORCE_3RDPARTY_BUILD=ON -DBUILD_PNG=ON -DBUILD_TIFF=ON -DBUILD_JASPER=ON -DBUILD_JPEG=ON -DBUILD_ZLIB=ON -DBUILD_OPENEXR=ON -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=ON -DBUILD_USE_SYMLINKS=OFF -DWITH_VTK=OFF",
"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 core.cc
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> {
public:
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>;