You are here: Start » Tutorial Exercises » Edge-based Template Matching: Gasket (ebtm_gasket)

Edge-based Template Matching: Gasket (ebtm_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 gasket_inspection directory.

Output

The location of the object.

Hints

This exercise shows a way to find an object in an image using Edge-based Template Matching. To use EbTM please use LocateSingleObject_Edges1 filter.

Labeling connections is explained in this article.

Solution (AVS)

  1. Add EnumerateImages filter to ACQUIRE section to load consecutive images from a disk directory.

  2. Add LocateSingleObject_Edges1 filter to PROCESS section and connect it with the input image.

  3. 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:

  4. Set the Rotation Tolerance to 20 because the angle is a little variable.

  5. Display the outImage and outObject.Match outputs on a data preview.

  6. Perform several iterations of the program and verify if the results are correct.

  7. Set inSearchRegion as shown in the picture below to improve the filter's performance.

  8. Add the inSearchRegion and outObject.Point outputs to the data preview to verify the search region.

  9. Add AlignRectangle filter and connect outObject.Alignment of LocateSingleObject_Edges1 filter with inAlignment of AlignRectangle filter.

  10. Open a rectangle drawing editor on inRectangle and select a rectangle around the gasket as shown in the picture below:

  11. Add the outAlignedRectangle output to a data preview.

Further Readings