<a id="easy-find"></a>

# EasyFind - Matching Geometric Patterns

**EasyFind** is a pattern matching library that allows users to learn and identify given patterns in an image.

![EasyFind](assets/images/easyfind/home_illustration.webp)

<a id="easy-find-process"></a>

## Process

<a id="easy-find-learning-process"></a>

### Learning

**EasyFind** learns your pattern from one or several images or a set of shapes.

* The pattern is a set of all the [feature points](purpose_and_principles.html.md#easy-find-principle) that **EasyFind** computes during the learning process:
  - **EasyFind** can extract these points from a bitmap representation of the pattern (see [Learn a Pattern from Image(s)](learning.html.md)).
  - Or it can use the feature points that are directly given by geometrical shapes (see [Learn a Pattern from Vectors](learn_the_model_from_vectors.html.md)).

<a id="easy-find-finding-process"></a>

### Finding

**EasyFind** detects the instances of your pattern in your images as a vector of [`EFoundPattern`](../../../doxygen_cpp/classeVision_1_1EFoundPattern.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EFoundPattern.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EFoundPattern.html) (see [Find Matches](finding.html.md)).

* Each `EFoundPattern` contains a `Score`, `Center`, `Angle` and `Scale`.
* These `EFoundPattern` can be highly-degraded due to noise, blur, occlusion, missing parts or unstable illumination conditions.
  - To optimize the find process, adjust the search parameters and check what **EasyFind** has found.

<a id="easy-find-contents"></a>

## Contents

Purpose and Principles of the **EasyFind** library.

How to learn a pattern from an image.

How to learn a pattern from an set of shapes or a `dxf` file.

How to find a learned pattern inside of an image.

<a id="easy-find-quick-links"></a>

## Quick Links

List of all Classes, Structs and Enumerations of the **EasyFind** library.

Code snippets for the **EasyFind** library.

#### SEE ALSO
Some **eVision Studio** samples illustrate several aspects of the **EasyFind** library:

* `Find a pattern`: Uses **EasyFind** to find a pattern in an image.
* `Learn a pattern with a region`: Uses `ERegion` to specify pattern precisely.
* `Find a vector pattern`: Learns a vector pattern from a `dxf` file.
* `Learn multiple patterns`: Learns several patterns with a single `EPatternFinder`.
