Socket
Socket
Sign inDemoInstall

ngx-opencv

Package Overview
Dependencies
1
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ngx-opencv

Angular service for implementing the OpenCV library in angular based applications


Version published
Weekly downloads
63
decreased by-37.62%
Maintainers
1
Install size
168 kB
Created
Weekly downloads
 

Readme

Source

Ngx OpenCv

NgxOpenCV is a lightweight angular service for integrating OpenCV.js WASM in Angular 2+ applications.
OpenCV on WASM offers near-native performance in web-based applications;
The service loads the library in the angular zone, thus enabling better control over it's state. Note that there are a few extra steps required to configure the component other than installing the package from npm.

Live Demo

View a live demo of an implementation of this library in another project - here

Installation & Setup

install the package via npm

npm install ngx-opencv --save

copy the opencv.js files to your assets folder (or any other folder). you can build the files yourself (instructions on the OpenCV site), or download them from this package's repository. both opencv.js & opencv_js.wasm need to placed in the same folder.

import the module to your app.module. you'll need to configure the location of the open cv files.

import {OpenCVConfig} from 'ngx-document-scanner';
import {NgxOpencv} from 'ngx-opencv';

// set the location of the OpenCV files
const openCVConfig: OpenCVConfig = {
  openCVDirPath: '/assets/opencv'  
};

@NgModule({ imports: [
  NgxOpenCVModule.forRoot(openCVConfig)
],
  bootstrap: [AppComponent]  
})
export class AppModule { }

You'll need to set 'cv' as a global variable, or on the component level:

declare var cv: any; 

this is very important to avoid TypeScript errors.

Usage

Inject NgxOpenCVService to the constructor of your component / service etc. and subscribe to the cvState observable.

	constructor(private ngxOpenCv: NgxOpenCVService) {  
	  // subscribe to status of OpenCV module  
	  this.ngxOpenCv.cvState.subscribe(
	    (cvState: OpenCVState) => {  
	      // do something with the state string
	      this.cvState = cvState.state;  
	      if (cvState.error) {
	        // handle errors
	      } else if (cvState.loading) {
	        // e.g. show loading indicator  
	      } else if (cvState.ready) {  
	        // do image processing stuff
	      }  
	  });
	}

Note that loading and parsing of the OpenCV library is done synchronously, and might take some time while blocking execution of other processes, depending on client's device. Therefore it's recommended to bind a loading indicator to the state observable.

The observable emits an OpenCVState object when changes occur, with the following properties:

propertytypedescription
loadingbooleantrue when loading of the opencv lib. is initiated, until it's completion callback is fires or the listener pick up an error
errorbooleantrue when an error is picked up by the listener
readybooleantrue when loading and parsing was copleted
statestringindicates the current state of the module as a string

Configuration Options

You can configure the service with the OpenCVConfig object

import {OpenCvConfig} from 'ngx-document-scanner';
propertytypedescription
openCVDirPathstringpath to the directory containing the OpenCV files, in the form of '/path/to/[opencv directory]'. directory must contain opencv.js & opencv_js.wasm.
runOnOpenCVInitFunctionadditional callback that will run when OpenCv has finished loading and parsing. callback runs in the angular zone in the context of the service.

Keywords

FAQs

Last updated on 27 May 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc