Some Useful Definitions
This section defines some terms and concepts used in this chapter.
2D client coordinate system: A 2D coordinate system that has its x-y axes in the image plane. It is described by pixels coordinates and the image client transform. If the image client transform is an identity, this coordinate system is same as the image coordinate system.
2D physical coordinate system: A rectangular 2D coordinate system with its x-y axes in the plane of a planar physical object observed through the camera.
Grid2D and Plate2D physical coordinate systems: Rectangular 2D coordinate systems with their x-y axes in the plane of a planar physical object observed through the camera. The planar physical object is typically a checkerboard calibration plate. The origin of Grid2D is the same as that of Plate2D, and the axes of Grid2D have the same orientation as the axes of Plate2D:
- The origin of the coordinate systems is at one of the vertices of the checkerboard calibration plate.
- The directions of the x-axis and y-axis are along the lines through a row of vertices and column of vertices, respectively.
The difference is that the unit of measurement is in tiles for Grid2D and in physical units (defined by the pitch of the calibration plate checkers) for Plate2D.
Grid2D is used primarily to express the position of a Data Matrix code in the checkerboard grid (in tiles).
Plate2D is used primarily to express the physical position of a vertex point in the run-time image (for example, in millimeters). For each vertex point, correspondence is established between its Client2D position and Plate2D position.
3D physical coordinate system: A rectangular 3D coordinate system that is an extension of 2D physical coordinate system described above. A positive z-axis in the direction pointing away from the camera is added.
3D camera coordinate system: A rectangular 3D coordinate system with its positive z-axis along the optical axis of the camera, pointing towards the observed object.
calibration: A procedure to create a transform that establishes the relationship between points in one coordinate space and corresponding points in another coordinate space.
calibration plate: A precision manufactured flat plate used to calibrate image acquisition systems.
checker: A square on a checkerboard calibration plate.
checkerboard vertex: A point on a checkerboard or a checkerboard image that is a shared corner of two white and two black checkers.
client coordinates: Image coordinates transformed by the client coordinate transform that is part of the pel buffer. For many applications this client coordinate transform is an identity transform, in which case image coordinates are the same as client coordinates.
Data Matrix: A 2D matrix symbology made up of modules arranged in a square or rectangle within a perimeter finder pattern.
extrinsic parameters: Properties of an image acquisition system that are external to the camera.
feature: An identifiable shape in an acquired image. For example, a dot in an image of a grid-of-dots calibration plate.
feature correspondence: Matching feature locations in an image to corresponding locations in physical space.
feature extractor: A software routine that scans a calibration plate image and returns a list of found feature locations and their corresponding physical coordinates.
grid pitch: The distance, in physical units, between adjacent checkerboard vertices.
intrinsic parameters: Properties of an image acquisition system that are internal to the camera and optics.
linear transform: A transform defined by a (2x2) matrix and a (2x1) vector.
nonlinear transform: A transform created from a set of data points. The transformation varies depending on the data point you transform. It is not consistent over a range of points as is the case of a linear transform.
physical coordinates: The physical space coordinate system. For example, the coordinate system used to locate points on a calibration plate.
pitch: The x and y distance between elements in a calibration plate. For example, the width (Pitchx) and height (Pitchy), in physical units, of the rectangles on a checkerboard calibration plate.
residual error: The difference between the actual grid point locations and the locations predicted by applying the calibrated transformation to the known grid spacing.
transform: A C++ class that can perform mapping between two coordinate systems. Most often used in CVL to map between image space and client (physical) space. Transform mapping can be linear or nonlinear.
transformation object: An object containing functions that map points in one coordinate system to another coordinate system. For example, a mapping between image space and client coordinate space. The transformation can be linear or nonlinear.