You are here: Start » Tutorial Exercises » Bottle Inspector Part 3: Foam Detection

Bottle Inspector Part 3: Foam Detection

Aim:

  • Extend the "Bottle Inspector Part 2" program with verification to ensure there is no foam above the liquid level.
  • Design a simple HMI that presents all the inspection results in the end-user's graphical interface.

Input

  • A set of images of bottles.
  • An array of liquid level points from the previous exercise.

Images are stored in the bottles directory.

Output:

Application with an HMI which performs several inspections:

  • Checking of the number of bottles,
  • Validation of the liquid levels,
  • Detection of foam above the liquid levels.

The results should be presented in the HMI, visualized with green or red primitives.

Hints:

The foam is much darker than the normal interior of a bottle above the liquid level.

In the first step, use the CreateRectangle filter to create a ROI based on previously calculated liquid level points.

Measure the average intensity within the ROI with the CheckPresence_Intensity.

Create a simple HMI form:

  • Show the result of a single inspection (Bool type) in PassFailIndicator control.
  • Present an array of Bool values with BoolIndicatorBoard control.
  • Present an image with the VideoBox control.
  • Use Label controls to improve visual appearance of the HMI.

Solution (FIS)

Start with the program created in the "Bottle Inspector Part 2" tutorial.

  1. Add the CreateRectangle filter:

    • Connect its inPoint input with the output representing liquid level points.
    • Set its inPointAnchor input to BottomCenter.
    • Set the inWidth and the inHeight to 35 and 15 respectively.
  2. Add CheckPresence_Intensity filter and connect its inImage input with the input image and the inRoi with the created rectangle.

  3. Set the inMinIntensity input to 80.

  4. Draw results of the performed inspections with red and green colors depending on the inspection result. Use the DrawRectangles_MultiColor and the DrawPoints_MultiColor filters for that.

Macrofilter Main performs all inspections and shows results on the HMI.