|
|
|
|
Pre-processing is a common name for operations with images at the lowest level of abstraction -- both input and output are intensity images. | |||||||||
The aim of pre-processing is an improvement of the image data that suppresses unwanted distortions or enhances some image features important for further processing. | |||||||||
Four categories of image pre-processing methods according to the size of the pixel neighborhood that is used for the calculation of a new pixel brightness:
| |||||||||
|
Image pre-processing methods use the considerable redundancy in images. Neighboring pixels corresponding to one object in real images have essentially the same or similar brightness value. Thus, distorted pixel can often be restored as an average value of neighboring pixels. One
example of this is filtering impulse noise. | |||||||||
|
If pre-processing aims to correct some degradation in the image, the nature of a priori information is important: knowledge about the nature of the degradation;
knowledge about the properties of the image acquisition device, and conditions under which the image was obtained. The nature of noise (usually its spectral characteristics) is sometimes known. knowledge about objects that are searched for in the image. | |||||||||
|
If knowledge about objects is not available in advance it can be estimated during the processing. |
Brightness transformations modify pixel brightness -- the transformation depends on the properties of a pixel itself. Two
classes of brightness corrections: position dependent and gray-scale
transformations.
| |||||||||||||||
Position dependent brightness correction
| |||||||||||||||
Grey scale transformation
|
| Histogram Matching Algorithm |
![]()
Practical Experiment 4.A - Gray Level Mapping
Read in and display the image what_is_it.jpg in
Matlab using the command imagesc and a colormap of gray(256). Can you recognize the person? Man or a woman?
Use the routine histeq and perform histogram equalization.
>>y=histeq(whatisit);
» imshow(y)
Can you recognize the person now? Display the image histograms before and after equalization using the imhist command in Matlab.
![]()
Pixel co-ordinate transformations
Brightness interpolation
| Geometric transforms permit the elimination of geometric distortion that occurs when an image is captured. | |
|
An example is an attempt to match remotely sensed images of the same area taken after one year, when the more
recent image was not taken from precisely the same position. To inspect changes over the year, it is necessary first to execute a geometric transformation, and then subtract one image from the other. | |
A geometric transform is a vector function T that maps the pixel (x,y) to a new position (x',y').![]() | |
| The transformation equations are either known in advance or can be determined from known original and transformed images. Several pixels in both images with known correspondence are used to derive the unknown transformation. | |
|
A geometric transform consists of two basic steps ... 1. Determining the pixel co-ordinate transformation mapping of the co-ordinates of the input image pixel to the point in the output image. The output point co-ordinates should be computed as continuous values (real numbers) as the position does not necessarily match the digital grid after the transform. 2. Finding the point in the digital raster which matches the transformed point and determining its brightness. Brightness is usually computed as an interpolation of the brightness of several points in the neighborhood | |
| Typical geometric distortions which have to be overcome in remote sensing: distortion of the optical systems nonlinearities in row by row scanning and nonconstant sampling period. |
General case of finding the co-ordinates of a point in the output image after a geometric transform.
Usually approximated by a polynomial equation ![]() | |
| This transform is linear with respect to the coefficients ark, brk | |
| If enough pairs of corresponding points (x,y), (x',y') in both images are known, it is possible to determine ark, brk by solving a set of linear equations. | |
|
More points than coefficients are usually used to improve the estimate of
the coefficients. | |
| If the geometric transform does not change rapidly depending on position in the image, low order approximating polynomials, m=2 or m=3, are used, needing at least 6 or 10 pairs of corresponding points. The corresponding points should be distributed in the image in a way that can express the geometric transformation -usually they are spread uniformly. | |
| The higher the degree of the approximating polynomial, the more sensitive to the distribution of the pairs of corresponding points the geometric transform. | |
|
In practice, the geometric transform is often approximated by the bilinear transformation 4 pairs of corresponding points are sufficient to find transformation coefficients ![]() | |
| Even simpler is the affine transformation for which three pairs of corresponding points are sufficient to find the coefficients |
|
The affine transformation includes typical geometric transformations such as rotation, translation, scaling and skewing. | |||||||||
A geometric transform applied to the whole image may change the co-ordinate system, and a Jacobean J provides
information about how the co-ordinate system changes ![]() | |||||||||
| If the transformation is singular (has no inverse) then J=0. If the area of the image is invariant under the transformation then J=1. | |||||||||
|
The Jacobean for the general bilinear transform | |||||||||
|
The Jacobean for the affine transformation (4.12) | |||||||||
Important simple geometric transformations
|
![]()
Practical Experiment 4.B - Simple Geometric Transformations
Open Matlab. Load the image quarter.jpg.
Perform several geometric transforms by modifying the warping coefficients
Perform translation, scaling, and skewing
![]()
|
Complex geometric transformations (distortion) can be approximated by partitioning an image into smaller rectangular subimages; for each subimage, a simple geometric transformation, such as the affine, is estimated using pairs
of corresponding pixels. geometric transformation (distortion) is then performed separately in each subimage. | |||||||||
Brightness interpolation
|
Nearest neighbor interpolation assigns to the point (x,y) the brightness value of the nearest point g in the discrete raster
| |||||||||
Linear interpolation uses the four points neighboring the point (x,y), and assumes that the brightness function is linear in this neighborhood.
| |||||||||
Bicubic interpolation
|
![]()
Practical Experiment: Interpolation
Interpolation is used to approximate values of an image at integer intervals.
![]()
04/02/01