You are here: Start » Function Reference » Image Spatial Transforms Maps » CreateUndistortionMap
CreateUndistortionMap
Computes a spatial transform map for undistorting images from a calibrated camera.
Syntax
void avl::CreateUndistortionMap ( const avl::Matrix& inCameraMatrix, const avl::LensDistortion& inDistortion, atl::Optional<int> inMapWidth, atl::Optional<int> inMapHeight, const avl::Vector2D& inMapShift, float inMapRotation, float inCameraRotationY, float inCameraRotationX, float inCameraRotationZ, const avl::ImageFormat& inImageFormat, avl::InterpolationMethod::Type inInterpolationMethod, avl::SpatialMap& outSpatialMap, atl::Optional<avl::Region&> outOutputRegion = atl::NIL )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
inCameraMatrix | const Matrix& | ||||
inDistortion | const LensDistortion& | ||||
inMapWidth | Optional<int> | 1 - | NIL | Width of output map, default: same as example image. | |
inMapHeight | Optional<int> | 1 - | NIL | Height of output map, default: same as example image. | |
inMapShift | const Vector2D& | Translation from the principal point on the image plane. | |||
inMapRotation | float | Rotation of the principal point on the image plane. | |||
inCameraRotationY | float | Rotation of view around Y axis (a.k.a. Pan, Azimuth or Yaw) | |||
inCameraRotationX | float | Rotation of view around X axis (a.k.a. Tilt, Elevation or Pitch) | |||
inCameraRotationZ | float | Rotation of view around Z axis (a.k.a. Roll, Horizon) | |||
inImageFormat | const ImageFormat& | Information about dimensions, depth and pixel type of the image | |||
inInterpolationMethod | InterpolationMethod::Type | Bilinear | |||
outSpatialMap | SpatialMap& | ||||
outOutputRegion | Optional<Region&> | NIL |
Description
After determining the intrinsic camera matrix, and intrinsic distortion coefficients using CalibrateCamera, this filter can be used to undo distortion of the images (undistortion).
The undistortion is performed through a general spatial transformation, using RemapImage. The result is a SpatialMap, i.e. a description of this transformation.
Examples
Remarks
The interpolation method chosen affects the speed of image remapping. Nearest neighbour is the fastest method, but bilinear interpolation provides higher quality.
The inImageFormat input describes dimensions and pixel format of the images that will be remapped with a RemapImage filter. Also an example image may be connected to this input and the format information will be extracted from it.
The outOutputRegion describes the region of valid pixels. If it does not cover the output area, it should be passed to RemapImage, to suppress the invalid pixels. To increase coverage, provide different values for inMapHeight and inMapWidth - to limit the output area to a valid region.
Errors
Error type | Description |
---|---|
DomainError | Empty camera matrix on input in CreateUndistortionMap. |
DomainError | Camera matrix must be 3x3 in CreateUndistortionMap. |
DomainError | Format of an empty image on input in CreateUndistortionMap. |