You are here: Start » Program Examples » Bottle Flattening

Bottle Flattening

Aim

The aim of this example is to transform a cylindrical surface to a flat rectangle.

Input

The image of a bottle with a label on a cylindrical surface.

Output

A flattened part of the image showing the label.

Hints

An image presenting a bottle can be flattened in several ways but the easiest one is to think of the bottle as a cylinder and consider one of the Image Spatial Transforms Maps filters to create a proper map and then display it as an image.

Solution (AVS)

  1. Add filter LoadImage.
  2. Add filter CreateCylinderMap and connect outImage from the previous filter with inImageFormat.
  3. In this filter you have to specify inCylinderRectangle input.
    • Click on this input in Properties window.
    • Mark a rectangle on the surface to be flattened.
    • Click OK.
  4. Set inCylinderRadiusCorrection in Properties window to 2. This parameter describes how many pixels the cylinder radius is larger than the visible circle radius.
  5. The previous filter created a spatial map for transformations from the cylinder surface to the flat rectangle. To apply the computed image transform, defined by the spatial map, a RemapImage filter needs to be used.
  6. Add the RemapImage filter to the program, connect inImage with outImage of the LoadImage filter and inSpatialMap with outSpatialMap of the CreateCylinderMap.

Macrofilter Main

Used Filters

Icon Name Description
LoadImage Loads a single image from a file.
RemapImage Fast (precomputed) image transformations, especially for view undistortion or object geometry correction (e.g. pos recognition of labels on cylindrical bottles).
CreateCylinderMap Inspection of the surface of bottles and other cylindrical objects. The result is used by RemapImage.

Further Readings