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 (FIS)
- Add filter LoadImage.
- Add filter CreateCylinderMap and connect outImage from the previous filter with inImageFormat.
- 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.
- Set inCylinderRadiusCorrection in Properties window to 2. This parameter describes how many pixels the cylinder radius is larger than the visible circle radius.
- 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.
- 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
- Image Processing - A comprehensive introduction to Image Processing.