Skip to content

udarrr/TemplateMatcher

 
 

Repository files navigation

OpenCV 4.1.1 Template Matching Image Finder

Tested Released Supported node LTS versions

It's either standalone or plugin for nutjs project

The best template matcher for node js ever with handlers

  • Invariant Rotating
  • Over Writing
  • Scale Images
  • Non Maximum Suppression

Standalone findMatch,findMatches

npm i @udarrr/template-matcher
import finder from "@udarrr/template-matcher";

(async () => {
const matcheImages = await finder.findMatch({haystack: 'pathToImage', needle: 'pathToTemplate'});
const matcheWithScreen = await finder.findMatch({needle: pathToTemplate});

const matchesImages = await finder.findMatches({haystack: 'pathToImage', needle: 'pathToTemplate'});
const matchesWithScreen = await finder.findMatches({needle: 'pathToTemplate'});
})();

@udarrr/template-matcher standalone API

{
    haystack?: string | Image,
    needle: string | Image,
    confidence?: number,
    providerData?: {
                       methodType?: MethodNameType; 
                       scaleSteps?: Array<number>; 
                       searchMultipleScales: boolean,
                       isRotation: boolean,
                       rotationOption?: { range?: number; overLap?: number; minDstLength?: number, subPixEstimation?: boolean };
                       roi?: Region; 
                       debug?: boolean
                    },
}

Nutjs v3 find,findAll

npm i @udarrr/template-matcher
import { imageResource, screen } from '@nut-tree/nut-js';
import {OptionsSearchParameterType} from '@udarrr/template-matcher/lib/types'
import "@udarrr/template-matcher"; //once wherever

(async () => {
  const img = await screen.find<OptionsSearchParameterType>(imageResource("path"),{ providerData: {...}});
  const imgs = await screen.findAll<OptionsSearchParameterType>(imageResource("path"),{ providerData: {...}});
})();

@udarrr/template-matcher providerData nutjs v3 Api

{
  searchInput: RegionResultFindInput | Promise<RegionResultFindInput>
  params?: {
      searchRegion?: Region | Promise<Region> | undefined;
      confidence?: number | undefined;
      abort?: AbortSignal | undefined;
      providerData?: {
          methodType?: MethodNameType;
          scaleSteps?: Array<number>;
          searchMultipleScales: boolean,
          isRotation: boolean,
          rotationOption?: { range?: number; overLap?: number; minDstLength?: number, subPixEstimation?: boolean };
          debug?: boolean;
          roi?: Region;
      }
  }
};

Values by default

methodType: "TM_CCOEFF_NORMED"
scaleSteps: [1, 0.9, 0.8, 0.7, 0.6, 0.5]
debug: false
searchMultipleScales: true,
isRotation: false,
rotationOption: {
                 range: 180, //-180 +180
                 overLap: 0.1, //inverted scale 0.1 = scaleSteps[0.9]
                 minDstLength: 32, //quality matching up to 4096
                 subPixEstimation: false //for low quality pics
                }
confidence: 0.8 //0.98 for TM_SQDIFF

About

nut.js TemplateMatcher for image search

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.1%
  • JavaScript 0.9%