You are here: Start » Tutorial Exercises » Edge-based Template Matching: Gasket
Edge-based Template Matching: Gasket
Aim:
Your task is to create a program which will be able to detect the position of a gasket.
Input:
The images of a gasket with variable location and rotation.

The input images are stored in the gasket_inspection directory.
Output:
The location of the object.

Hints:
This exercise demonstrates a method to find an object in an image using Edge-based Template Matching. To use EbTM, please use the LocateSingleObject_Edges1 filter.
Labeling connections is explained in this article.
Solution (AVS):
- 
Add the EnumerateImages filter to the ACQUIRE section to load consecutive images from a disk directory.
 - 
Add the LocateSingleObject_Edges1 filter to the PROCESS section and connect it with the output image.
 - 
Open a template matching editor on inEdgeModel and make sure to select Expert complexity mode in the top right corner. Select the template region as shown in the picture below:

 - 
Set the Rotation Tolerance to 20 because the angle varies slightly.
 - 
Display the outImage and outObject.Match outputs in a data preview.
 - 
Perform several iterations of the program and verify if the results are correct.
 - 
Set inSearchRegion as shown in the picture below to improve the filter's performance.

 - 
Add the inSearchRegion and outObject.Point outputs to the data preview to verify the search region.
 - 
Add the AlignRectangle filter and connect outObject.Alignment of the LocateSingleObject_Edges1 filter with inAlignment of the AlignRectangle filter.
 - 
Open a rectangle drawing editor on inRectangle and select a rectangle around the gasket as shown in the picture below:

 - 
Add the outAlignedRectangle output to a data preview.
 

Further Readings
- Template Matching - Most detailed description of the Template Matching technique.
 
