Namespace for collection of image 2D transformation functions from the Foundation package.
More...
|
enum class | Interpolation {
NearestNeighbor = CExports::IP_NearestNeighbour
, Linear = CExports::IP_Linear
, Cubic = CExports::IP_Cubic
, Lanczos = CExports::IP_Lanczos
,
Supersample = CExports::IP_Supersample
} |
| Interpolation modes available inside the Foundation package. More...
|
|
enum class | Axis { NoAxis = 0
, X = 1
, Y = 2
, Both = 3
} |
| Axis enumeration. More...
|
|
enum class | CalibrationPatternContrast { BlackOnWhite = CExports::CPC_Black_On_White
, WhiteOnBlack = CExports::CPC_White_On_Black
} |
| Definition of the contrast of the pattern used for automatic calibration. More...
|
|
enum class | CalibrationPatternStyle { UniformDots = CExports::CPS_Uniform_Dots
, AsymmetricDots = CExports::CPS_Asymmetric_Dots
} |
| Definition of the calibration pattern style used for automatic calibration. More...
|
|
enum class | CalibrationPatternFormat { A4
, Letter
} |
| Definition of the paper format used for printing calibration patterns. More...
|
|
enum class | CalibrationPatternOrientation { Portrait
, Landscape
} |
| Format orientation for the CalibrationPatternFormat. More...
|
|
|
std::unique_ptr< Image > | MatrixTransform (const Image &image, const Matrix2D &matrix, Interpolation interpolation=Interpolation::Linear) |
| Use a matrix to transform an image. More...
|
|
std::unique_ptr< Image > | Mirror (const Image &image, Axis axis) |
| Mirror the input image on the x and/or y axis. More...
|
|
std::unique_ptr< Image > | Perspective (const Image &image, const PerspectiveTransformation &coeffs, Size2D< int > targetSize, Interpolation interpolation=Interpolation::Linear) |
| Apply the perspective transformation coefficients to the image. More...
|
|
std::unique_ptr< Image > | Resize (const Image &image, Size2D< int > targetSize, Interpolation interpolation=Interpolation::Linear) |
| Resize the input image. More...
|
|
std::unique_ptr< Image > | Rotate (const Image &image, Angle angle, Interpolation interpolation=Interpolation::Linear) |
| Rotate the input image by the given angle. More...
|
|
std::unique_ptr< Image > | Shear (const Image &image, double shearX, double shearY, Interpolation interpolation=Interpolation::Linear) |
| Shear the input image. More...
|
|
std::unique_ptr< Image > | CreateCalibrationPattern (CalibrationPatternStyle style, CalibrationPatternContrast contrast, int width, int height, int numColumns, int numRows) |
| Create a user-definable calibration pattern. More...
|
|
std::unique_ptr< Image > | CreatePrintableCalibrationPattern (CalibrationPatternStyle style, CalibrationPatternContrast contrast, CalibrationPatternFormat paperSize, CalibrationPatternOrientation orientation, int numColumns, int numRows, double horizontalBorder, double verticalBorder, int dpi) |
| Create a user-definable calibration pattern suitable for printing on a sheet of paper. More...
|
|
void | ExtractCalibrationLists (const ImagePlane &plane, CalibrationPatternStyle style, CalibrationPatternContrast contrast, int gridSpacing, int minContrast, double maxRatio, Area2D aoi, std::vector< Point2D< double > > &originalPixels, std::vector< Point2D< double > > &transformedPixels) |
| Automatically extracts the pixel lists required for creating a NonLinearTransformation object. More...
|
|
void | ExtractCalibrationLists (const ImagePlane &plane, CalibrationPatternStyle style, CalibrationPatternContrast contrast, int gridSpacing, int minContrast, double maxRatio, std::vector< Point2D< double > > &originalPixels, std::vector< Point2D< double > > &transformedPixels) |
| Automatically extracts the pixel lists required for creating a NonLinearTransformation object. More...
|
|
Namespace for collection of image 2D transformation functions from the Foundation package.
Automatically extracts the pixel lists required for creating a NonLinearTransformation object.
- Parameters
-
[in] | plane | Image plane to work on. |
[in] | style | Calibration pattern style visible in the image (see CalibrationPatternStyle). |
[in] | contrast | Selects whether the image shows CalibrationPatternContrast::BlackOnWhite or CalibrationPatternContrast::WhiteOnBlack dots. |
[in] | gridSpacing | Spacing of the calibration dot grid in the target image. Defines the distance of the points that will end up in the transformed pixels. |
[in] | minContrast | Minimum gray value contrast between the object and the background of the calibration target pattern. |
[in] | maxRatio | Maximum ratio between the biggest and the smallest calibration dot. |
[in] | aoi | Area of interest in which to look for the calibration pattern's dots. |
[out] | originalPixels | Point list to contain the locations of the calibration dots in the input image in pixel coordinates (output). |
[out] | transformedPixels | Pixel list to contain the appropriate locations of the calibration dots in the target image of the calibration (output). |
- Exceptions
-
Note that a more convenient alternative is to call the method NonLinearTransformation::FromCalibrationPattern. It will do the list extraction and the generation of the transformation object in a single function call. The image plane given to this method needs to contain a calibration pattern as generated by the function CreateCalibrationPattern: A regularly spaced matrix of dots, the distance between the dots in x- and y-direction should be 2.5 times the diameter of the dots, if an asymmetric pattern was used, the bigger dots should have 2.5 times the area of the smaller dots (meaning that their radius is sqrt(2.5) times the radius of the small dots). Note that, although the area of interest is given as a Area2D here (and in the processing of the Area2D the image's coordinate system will be respected), the actual output of this method uses CoordinateSystemType::PixelCoordinates! This seemingly inconsistent mix in this case is in fact useful, because a Area2D will better capture the actual location of a calibration pattern, especially if the image has been rotated, than a Rectangle style area of interest. But the calibration functions usually assume that the pixel lists are given in pixel coordinates. To avoid misunderstandings and complications in the interpretation of the image content, it is recommended to use a default coordinate system on the input image. The minimum contrast (minContrast) value to be set depends on the quality of the image taken from the pattern, but in a typical situation this contrast should not drop below 64 gray values, otherwise it might become difficult to extract the calibration points. The maximum ratio (maxRatio) value will be used to identify outliers when looking for calibration dots. It should be set high enough to allow for the area variations to be expected due to perspective distortions and small enough to eliminate the candidates that are either too big or too small to be valid calibration pattern dots. Typically, values of about 3.0 to 5.0 are big enough - even if there is notable perspective distortion visible in the images. If an asymmetric calibration pattern has been selected, the ratio used for calculation will be adapted accordingly.
Automatically extracts the pixel lists required for creating a NonLinearTransformation object.
- Parameters
-
[in] | plane | Image plane to work on. |
[in] | style | Calibration pattern style visible in the image (see CalibrationPatternStyle). |
[in] | contrast | Selects whether the image shows CalibrationPatternContrast::BlackOnWhite or CalibrationPatternContrast::WhiteOnBlack dots. |
[in] | gridSpacing | Spacing of the calibration dot grid in the target image. Defines the distance of the points that will end up in the transformed pixels. |
[in] | minContrast | Minimum gray value contrast between the object and the background of the calibration target pattern. |
[in] | maxRatio | Maximum ratio between the biggest and the smallest calibration dot. |
[out] | originalPixels | Point list to contain the locations of the calibration dots in the input image in pixel coordinates (output). |
[out] | transformedPixels | Pixel list to contain the appropriate locations of the calibration dots in the target image of the calibration (output). |
- Exceptions
-
Note that a more convenient alternative is to call the method NonLinearTransformation::FromCalibrationPattern. It will do the list extraction and the generation of the transformation object in a single function call. The image plane given to this method needs to contain a calibration pattern as generated by the function CreateCalibrationPattern: A regularly spaced matrix of dots, the distance between the dots in x- and y-direction should be 2.5 times the diameter of the dots, if an asymmetric pattern was used, the bigger dots should have 2.5 times the area of the smaller dots (meaning that their radius is sqrt(2.5) times the radius of the small dots). To avoid misunderstandings and complications in the interpretation of the image content, it is recommended to use a default coordinate system on the input image. The minimum contrast (minContrast) value to be set depends on the quality of the image taken from the pattern, but in a typical situation this contrast should not drop below 64 gray values, otherwise it might become difficult to extract the calibration points. The maximum ratio (maxRatio) value will be used to identify outliers when looking for calibration dots. It should be set high enough to allow for the area variations to be expected due to perspective distortions and small enough to eliminate the candidates that are either too big or too small to be valid calibration pattern dots. Typically, values of about 3.0 to 5.0 are big enough - even if there is notable perspective distortion visible in the images. If an asymmetric calibration pattern has been selected, the ratio used for calculation will be adapted accordingly.