<a id="easyobject"></a>

# EasyObject - Analyzing Blobs

**EasyObject** is the  ***blob analysis*** library of **eVision**. A  ***blob*** is a grouping of neighboring pixels of the same gray level range. The pixels from a  ***blob*** are connected: there exists a path between any couple of pixels from the blob that is entirely within the blob. This is also called *connected-componenent analysis*.

**EasyObject** can be used on [`BW8`](../../../doxygen_cpp/classeVision_1_1EImageBW8.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EImageBW8.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EImageBW8.html), [`BW16`](../../../doxygen_cpp/classeVision_1_1EImageBW16.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EImageBW16.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EImageBW16.html) and [`C24`](../../../doxygen_cpp/classeVision_1_1EImageC24.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EImageC24.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EImageC24.html) images and its processing can be restricted to [ROIs](../../basic_operations/regions/regions_of_interest.html.md) and to complex [regions](../../basic_operations/regions/arbitrarily_shaped_roi__eregion_.html.md).

<a id="easyobject-process"></a>

## Process and Workflow

* It works by  ***encoding*** an image into a  ***coded image***. The  [`encoder`](../../../doxygen_cpp/classeVision_1_1EImageEncoder.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EImageEncoder.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EImageEncoder.html) classifies the image into several  ***layers*** with  ***image segmenters*** and builds the  ***blobs*** from the selected  ***layers***.
* It can compute various  ***features*** for each objects (for example its area, bounding box, etc.).
* These  ***features*** can be used to select, filter, or sort the  ***blobs*** with [`EObjectSelection`](../../../doxygen_cpp/classeVision_1_1EObjectSelection.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EObjectSelection.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EObjectSelection.html).
* The  [`object template matcher`](../../../doxygen_cpp/classeVision_1_1EObjectTemplateMatcher.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1EObjectTemplateMatcher.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1EObjectTemplateMatcher.html) can be used to align and match the  ***blobs*** to a reference image.
* There are two kinds of  ***blobs***:
  *  ***objects*** that are built directly by the encoder from the segmentation of the image
  *  ***holes*** that are built from the  ***objects***.
  * Both types of  ***blobs*** have the same class, named [`ECodedElement`](../../../doxygen_cpp/classeVision_1_1ECodedElement.html) [<sub>.NET</sub>](../../../doxygen_cs/classeVision_1_1ECodedElement.html) [<sub>Python</sub>](../../../doxygen_python/classeVision_1_1ECodedElement.html).

![image](assets/images/easyobject/holesconstructionwhitelayer.webp)

<a id="easyobject-contents"></a>

## Contents

Segment and build blobs.

Build holes and computes various features.

Select and sort objects and holes.

Matching objects to a template.

Validate images using a Golden Template.

<a id="easyobject-quick-links"></a>

## Quick Links

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

Code snippets for the **EasyObject** library.
