Back to FabImage Library website
You are here: Start » Function Reference » Image » Image Spatial Transforms Maps » CreateCylinderMap
CreateCylinderMap
Header: | FIL.h |
---|---|
Namespace: | fil |
Module: | Calibration |
Creates a spatial map for transformations from a cylinder surface to a flat rectangle.
Applications: Inspection of the surface of bottles and other cylindrical objects. The result is used by RemapImage.
Syntax
C++
C#
void fil::CreateCylinderMap ( const fil::ImageFormat& inImageFormat, const fil::Rectangle2D& inCylinderRectangle, const float inCylinderRadiusCorrection, ftl::Optional<fil::Point2D> inOpticalAxis, ftl::Optional<int> inNewWidth, ftl::Optional<int> inNewHeight, const int inMargin, fil::InterpolationMethod::Type inInterpolationMethod, fil::CylinderMappingMode::Type inCylinderMappingMode, fil::SpatialMap& outSpatialMap, ftl::Optional<fil::Region&> outOutputRegion = ftl::NIL )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
inImageFormat | const ImageFormat& | Information about dimensions, depth and pixel type of the image | |||
inCylinderRectangle | const Rectangle2D& | Bounding rectangle of the cylinder | |||
inCylinderRadiusCorrection | const float | 0.0 - | 0.0f | How many pixels the cylinder radius is larger than the visible circle radius | |
inOpticalAxis | Optional<Point2D> | NIL | Coordinates of the camera optical axis (Auto = image center) | ||
inNewWidth | Optional<int> | 1 - | NIL | Width of an image created by output spatial map application | |
inNewHeight | Optional<int> | 1 - | NIL | Height of an image created by output spatial map application | |
inMargin | const int | 0 - | 0 | Width of the cylinder extreme points zone excluded from spatial map | |
inInterpolationMethod | InterpolationMethod::Type | Bilinear | Interpolation method used in extraction of image pixel values | ||
inCylinderMappingMode | CylinderMappingMode::Type | Determines which pixels of the mapped cylinder have to be within the given rectangle. | |||
outSpatialMap | SpatialMap& | Output spatial map | |||
outOutputRegion | Optional<Region&> | NIL | Pixels set by the spatial map application |
Optional Outputs
The computation of following outputs can be switched off by passing value ftl::NIL
to these parameters: outOutputRegion.
Read more about Optional Outputs.
Description
The filter creates a spatial map that allows to transform a cylinder surface to a flat rectangle. The inCylinderRectangle should be the minimal rectangle that contains the given cylinder. Because of the presence of a camera, the cylinder radius is not equal to but greater than the width of the input rectangle. To compensate the difference, inCylinderRadiusCorrection has to be properly set experimentally. Another important parameter is the inOpticalAxis input that represents the coordinates of the camera optical axis, i.e. it shows which pixel is directly under the camera. It is set to the input image center by default.
Examples
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Cylinder stripe within rectangle thinner then a single pixel in CreateCylinderMap. |
DomainError | Empty domain in CreateCylinderMap. |
DomainError | Mapped image width too large in CreateCylinderMap. |
DomainError | Margin too large in CreateCylinderMap. |