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.
Labeling connections is explained in this article.
You can learn how to turn on sections here.
Solution (FIS)
- Add filter CreateCylinderMap to the INITIALIZE section and set inImageFormat parameters as follows:
- Width: 2058
- Height: 2456
- Type: UInt8
- Depth: 1
- PitchAlignment: 16
- 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 filter LoadImage to the ACQUIRE section.
- 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.