EasyObjectInertia
Support |
|
||||||||||||
Required licenses |
EasyObject |
||||||||||||
Recommended images |
The images Washer and Target 1 from the folder Sample Images\EasyGauge |
||||||||||||
Location |
Matching and Measurement\EasyObjectInertia \ Python: Matching and Measurement \Console samples\ |
||||||||||||
![]()
|
Purpose
This sample program demonstrates how to:
□ | Find blobs (objects or holes that have the same gray level range) in the image. |
□ | Keep only the blobs whose area is in a given range. |
Code highlights
1. | Define an image encoder to encode an image (m_Image) into an object In a general content, the term object should be understood with the meaning of a class instance. In EasyObject, an object is a maximally-sized area of adjacent connected pixels belonging to the layer foreground. ECodedImage2 (m_CodedImage). |
EImageEncoder encoder;
encoder.Encode(m_Image, m_CodedImage);
2. | Add the objects to an object selection object (EObjectSelection m_Selection). |
// Select all the objects from the coded image
m_Selection.Clear();
m_Selection.AddObjects(m_CodedImage);
3. | Filter the selection of objects by removing all objects whose area is outside the range [50, 10 000]. |
// Remove objects too small or too large
m_Selection.RemoveUsingUnsignedIntegerFeature(EFeature_Area, 50, 10000, EDoubleThresholdMode_Outside);
4. | Draw the selected objects and their ellipse of inertia with their diagonals. |
// Draw all the selected objects
CodedImage.Draw(hDC, selection);
// Draw the ellipses of inertia with their diagonals, using a red pen
const ERGBColor redPen(255, 0, 0);
CodedImage.DrawFeature(hDC, redPen, EDrawableFeature_Ellipse, selection, 1.0f, 1.0f, 0.0f, 0.0f, true);