npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ngx-opencv

v2.0.1

Published

Angular service for implementing the OpenCV library in angular based applications

Downloads

372

Readme

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:

| property |type | description | |--|--|--| | loading | boolean | true when loading of the opencv lib. is initiated, until it's completion callback is fires or the listener pick up an error | | error | boolean | true when an error is picked up by the listener | | ready | boolean | true when loading and parsing was copleted | | state | string | indicates 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';

| property | type | description |
|--|--|--|
|openCVDirPath| string | path to the directory containing the OpenCV files, in the form of '/path/to/[opencv directory]'. directory must contain opencv.js & opencv_js.wasm.| |runOnOpenCVInit| Function| additional callback that will run when OpenCv has finished loading and parsing. callback runs in the angular zone in the context of the service.|