15
Image Pre-Processing Image pre-processing (předzpracování obrazu) transformations of the input image leading to noise reduction, image improvement or preparation of the image for subsequent image analysis Image pre-processing operations Spatial domain Point transforms Linear filters Non-linear filters Frequency domain Filters in frequency domain

Image Pre-Processing

Embed Size (px)

DESCRIPTION

Image Pre-Processing. Image pre-processing (předzpracování obrazu) transformations of the input image leading to noise reduction, image improvement or preparation of the image for subsequent image analysis Image pre-processing operations Spatial domain Point transforms Linear filters - PowerPoint PPT Presentation

Citation preview

Page 1: Image Pre-Processing

Image Pre-Processing

• Image pre-processing (předzpracování obrazu)– transformations of the input image leading to noise reduction, image

improvement or preparation of the image for subsequent image analysis

• Image pre-processing operations– Spatial domain

• Point transforms

• Linear filters

• Non-linear filters

– Frequency domain• Filters in frequency domain

Page 2: Image Pre-Processing

Point Transforms

• Point transform (bodová transformace)– a pixel by pixel transformation of the image array in spatial domain

• Position-dependent point transformg(x,y) = ( f(x,y), x, y)

: < 0, NI > < 0, Nx > < 0, Ny > < 0, NI >

– Compensation for uneven illumination

– Compensation for uneven dark charge of CCD pixels

• Position-independent point transformg(x,y) = ( f(x,y))

: < 0, NI > < 0, NI >

– Change of image brightness: (x) = x + k

– Change of image contrast: (x) = any function of x, for example:

(x) = k • x, (x) = k • xn, (x) = k • log(x), (x) = k • exp(x)

Page 3: Image Pre-Processing

Position-independent Point Transforms

• Look-up table (LUT)– Usually (x) is pre-computed, the table of its values is called look-

up-table (LUT). The LUT is 1D array of values. The size of this array is determined by the bit depth of the image (256 values for 8-bit image, 4096 values for 12-bit image, etc.).

• Intensity histogram– The best way to choose (x) is to look at the intensity histogram of

the given image. Intensity histogram is a 2D plot where x-axis represents intensity (e.g. 0-255 for 8-bit image) and y-axis represents the number of pixels in the image having the corresponding intensity.

Page 4: Image Pre-Processing

Position-independent Point Transforms• Example of the influence of point transform (contrast change)

on the intensity histogram for (x) = 4 • x

Page 5: Image Pre-Processing

Other Intensity Histogram ExamplesUnder- and over-exposed image (pod- a pře-exponovaný obraz)

Page 6: Image Pre-Processing

Filters

• Filter (filtr)– a position-independent operator that transforms the image

• Filter in spatial domain (filtr v prostorové doméně)– spatial operator that produces the output image array g(x,y)

from the input image array f(x,y)

• Filter in frequency domain (filtr ve frekvenční doméně)– frequency operator that produces the output image spectrum (x,y)

from the input image spectrum (x,y)

• Low-pass filter (nízkofrekvenční filtr)– a filter that keeps low frequencies and suppresses the high ones

• High-pass filter (vysokofrekvenční filtr)– a filter that keeps high frequencies and suppresses the low ones

Page 7: Image Pre-Processing

Linear Filters

• Linear filter (lineární filtr)– spatial linear operator that produces the output image array g(x,y)

from the input image array f(x,y) in the following way: g(x0,y0) is obtained by a linear combination of pixels of the input image array f(x,y) within a neighbourhood of pixel (x0,y0).

n=m=1: 3x3 neighbourhood

n=m=2: 5x5 neighbourhood

n=m=3: 7x7 neighbourhood

n

na

m

mb)b,a(h)by,ax(f)y,x(g

Page 8: Image Pre-Processing

Linear Filters

• Convolution kernel (konvoluční jádro)– The function h(a,b) is called convolution kernel.

– The function h(a,b) is usually symmetric: h(a,b) = h(-a,b) = h(a,-b) = h(-a,-b).

– The values of the function h(a,b) usually depend on radius:

– The function h(a,b) is specified as a matrix H.

– If n=m then the matrix H is square.

g(x,y) = F(x,y) * H

F(x,y) – matrix of neighbours of pixel (x,y)

H – convolution kernel

* – scalar matrix multiplication (defined in the same way as scalar vector multiplication)

)r(hbah)b,a(h 22

Page 9: Image Pre-Processing

Linear Filters

Principle of linear filtering using a 3x3 convolution kernel

– The intensity value at position (m,n) is replaced by the sum of nine numbers, where each number is obtained by multiplication of the number in matrix with the intensity value „behind“ this number.

– This process (nine multiplications plus eight additions) must be performed for each position in the image, i.e. all values of m and n.

Page 10: Image Pre-Processing

Linear FiltersProblem with linear image filtering

– Image convolution can be realised by scanning the convolution mask line by line over the image. At the shaded pixels the intensity value has already been replaced by the convolution sum. Thus the intensity values at the shaded pixels falling within the filter mask need to be stored in an extra buffer!

Page 11: Image Pre-Processing

Smoothing Linear Filters

• Smoothing (vyhlazování)– elimination of high frequencies

– usually performed using averaging (either weighted or non-weighted)

• Example: Smoothing using average 3x3 filters

non-weighted weighted weighted

111

111

111

91

H

111

121

111

101

H

121

242

121

161

H

Page 12: Image Pre-Processing

Smoothing Linear Filters

• Gaussian filter (Gaussův filtr)– the best smoothing filter

2

2

221

r

exp)r(h

121

242

121

161

33xH

14641

41624164

62436246

41624164

14641

2561

55xH

1615201561

6369012090366

15902253002259015

2012030040030012020

15902253002259015

6369012090366

1615201561

40961

77 xH

Page 13: Image Pre-Processing

Smoothing Linear FiltersExample of Gaussian filtering with different values of

Original = 1

= 2 = 4

Page 14: Image Pre-Processing

Edge Detection Linear Filters

• Edge detection (detekce hran) – usually performed using linear filters simulating 1st or 2nd derivative

– can be used for edge enhancement or object boundaries reconstruction

• Sobel filter– approximates the first derivative of the image

– the basic kernels are (1,-1) or (1,0,-1)

– mostly 3x3 kernel is used with the sum of coefficients equal to 0

– results for several 3x3 kernels can be averaged

– there are 8 possibilities of the following type:

– often used after Gaussian filter(so called derivative of Gaussian – DroG)

121

000

121

H

012

101

210

H

101

202

101

H

Page 15: Image Pre-Processing

Edge Detection Linear Filters

• Laplacian filter– approximates the second derivative of the image

– the basic kernel is (1,-2,1)

– mostly 3x3 kernel is used with the sum of coefficients equal to 0

– two basic types of 3x3 kernel are used, others are possible:

– often used after Gaussian filter(so called Laplacian of Gaussian – LoG = Mexican hat filter)

010

141

010

41

H

111

181

111

81

H

111

222

111

121

121

121

81

212

141

212

81

H