Geometrical transformations

From HandWiki


In many image processing applications, geometrical transformations facilitate processing. Examples are image restoration, where one frequently wants to model the degradation process as space-invariant, or the calibration of a measurement device, or a correction in order to remove a relative movement between object and sensor. In all cases the first operation is to eliminate a known geometrical distortion, as in the following figure:

In many cases, a two-dimensional polynomial transformation from the distorted (x,y) system to the undistorted (u,v) system is sufficient:

File:Hepa img402.gif

File:Hepa img403.gif

The aij, bij, are usually found by some fitting method. If one takes the example of N = 3, i.e. n = 10 unknowns, with File:Hepa img404.gif corresponding point pairs (xi,yi) and (ui,vi), and defines the (m,n) matrix

File:Hepa img405.gif

then the problem can be written

File:Hepa img406.gif

with a, b the vectors of coefficients.

Choosing the orthogonal triangularization A = QR ( Hepa img2.gif QR Decomposition), the solutions are:

File:Hepa img407.gif

where S is the (n,n) upper triangular matrix part of R, and P a (m,n) part of Q (see figure).

A different example is the calibration of a scanner based on a cathode ray tube; this type of two-dimensional digitizer shows a pincushion distortion, which is corrected by a fifth order polyomial (i.e. N = 5):

When dealing with digital images characterized by greyvalues (or colours), interpolation between the greyvalues at the locations in the distorted image becomes necessary. This resampling can be done using different methods. The simplest one is the nearest-neighbour interpolation. Bilinear interpolation uses a weighted average of the four nearest pixels. If (x0,y0) is the point for which the greyvalue g0(x0,y0) should be interpolated, and (xi,yi) with gi(xi,yi) are the four known neighbours, then g0 can be computed by establishing a local relation

File:Hepa img410.gif

The four unknowns a, b, c, d are determined from the four known nearest neighbours, and then used to obtain g0.

For higher order interpolations, Hepa img1.gif e.g. Pratt78.