Matthew Thurley Industrial Image Analysis – E0005E/file/E0005E_Lecture06... · Matthew Thurley...

Post on 11-Mar-2018

229 views 3 download

transcript

1

Frequency Domain Filtering

Matthew Thurley

Industrial Image Analysis – E0005Ebased on material by Johan Carlson

——————————————————–

1-1

2

This Lecture

The concept of frequency – Fourier transformsRepetition of 1D convolution, transforms and filteringGeneralization to the 2D world

2D convolution

Frequency domain filtering

Examples of frequency selective filters

3

The concept of frequency

Let’s start off in the one-dimensional world...

The period of cos(t) is 2π seconds, i.e. The signal repeats itself after2π seconds.

The period of cos(2π · t) is one second.

The period is usually denoted T .

Frequency is measured in Hz (Hertz) and is the number of periods(or cycles) per second, denoted f . That is,

f =1

T.

The function cos(2π · ft) has a frequency of f and a period of 1/f

Angular frequency is measured in rad/s, denoted ω, so

ω =2π

T.

4

The concept of frequency (cont’d...)

−10 0 10 20−5

0

5

Time t (ms)

x 1(t)

Cosine, f = 200 Hz

−10 0 10 20−5

0

5

Time t (ms)

x 2(t)

Cosine, f = 100 Hz

−10 0 10 20−5

0

5

Time t (ms)

x 3(t)

Cosine, f = 10 Hz

−10 0 10 20−5

0

5

Time t (ms)

x 3(t)

Cosine, f = 0 Hz

5

The concept of frequency (cont’d...)

Some comments

Frequency is measured in hertz, cycles or periods per second

Higher frequency means more periods per second.

Higher frequency means shorter period.

Zero frequency implies infinite period, which means a constantsignal.

Fourier transform of a function of time has units, cycles per second

Fourier transform of a function of pixels (like an image) will haveunits, cycles per pixel

Rapid changes in a signal correspond to high frequencies, slowchanges are represented by low frequencies

Rapid changes in intensity in an image are high frequencies.

6

Background - Complex Numbers

Recall that a complex number contains a real and an imaginarycomponent.

C = R+ jI

And a complex number can be represented in polar coordinates (r, θ),(magnitude, angle), and using these polar coordinates

C = |C|(cosθ + jsinθ)

Using Eulers formula

ejθ = cosθ + jsinθ

And if we use ω = 2π/T angular frequency as our angle

ej2π

T = cos2π

T+ jsin

T

Eulers formula is a sum of cosins and sines that Fourier used to expressany periodic function.

7

Sum of cosines and sines

Using a sum of cosines and sines to express a periodic function

8

The 1D Fourier transforms

The Fourier theory states that any periodic function can be expressed asa sum of cosines and sines of different frequencies with each multiplied bya different coefficient. Which means it can be expressed in terms ofcomplex exponents (eulers formula) with varying frequency.A time signal or time series can be representedthis way also.

The continuous-time Fourier transform

X(ω) =

∫ ∞

−∞

x(t)e−jωtdt,

where ω = 2πf , where f (or µ in the textbook) denotes frequency in Hz.The corresponding inverse transform is

x(t) =1

∫ ∞

−∞

X(ω)ejωtdω.

9

The 1D Fourier transforms (cont’d...)

Example

Consider the following two continuous-time signals:

x1(t) = cos(2πt) + 0.3 cos(16πt)

x2(t) = e−8(t−3)2 cos(8πt)

What are the frequency components in x1(t)?

10

The 1D Fourier transforms (cont’d...)

...and plotting the signals and the transforms we get

0 2 4 6

−1

0

1

time, t (s)

x 1(t)

−20 −10 0 10 200

0.2

0.4

0.6

frequency, f (Hz)

|X1(f

)|0 2 4 6

−0.50

0.51

time, t (s)

x 2(t)

−10 −5 0 5 100

1

2x 10

−3

frequency, f (Hz)

|X2(f

)|

11

The 1D Fourier transforms (cont’d...)

There is also a discrete Fourier transform, working on sequences ofnumbers, x[n] where n = 0, 2, . . . , N − 1. This is defined as

X [k] =N−1∑

n=0

x[n]e−j(2πk/N)n,

where we get the discrete frequencies k = 0, 1, . . . , N − 1.

The corresponding inverse transform is defined as

x[n] =1

N

N−1∑

k=1

X [k]ej(2πk/N)n

These can be computed in MATLAB using the fft and ifft commands,respectively.

12

The 1D Fourier transforms (cont’d...)

Example - same as before

0 20 40 60 80

−1

0

1

n

x 1[n]

7000 8000 90000

0.2

0.4

0.6

k

|X1[k

]|200 250 300 350

−0.50

0.51

time, t (s)

x 2(t)

6500 7000 7500 8000 8500 9000 95000

1

2x 10

−3

k|X

2([k]

|

Note that the bottom right spectrum is also discrete, but plotted here as asolid line just for clarity.

13

Background - Correlation and Convolution

DIP Textbook 3.4.2 Spatial Correlation and Convolution

Correlation is the processing of filtering a mask over an image,exactly as explained in linear spatial filtering or neighborhoodoperations in lecture 2.Correlation operator ⋄, of a filter w(x, y) of size m× n with an imagef(x, y)

w(x, y) ⋄ f(x, y) =∑a

s=−a

∑bt=−bw(s, t)f(x+ s, y + s)

Convolution is the same except the mask is reflected about both axes(exactly as the transpose in binary morphological image processing.Also described as the mask being rotated by 180 degrees)Convolution operator ∗, of a filter w(x, y) of size m× n with an imagef(x, y)

w(x, y) ∗ f(x, y) =∑a

s=−a

∑bt=−bw(s, t)f(x− s, y − s)

14

Background - Correlation and Convolution

15

Background - Correlation and Convolution

16

Filtering in the time-domain

If we have a system which is linear and time-invariant (LTI)

x(t)T fx(t)g

y(t) = T fx(t)g

the output can be calculated using the convolution integral

y(t) = x(t) ∗ h(t) =

∫ ∞

−∞

x(τ)h(t− τ)dτ

or equivalently in the discrete-time case, by the convolution sum

y[n] = x[n] ∗ h[n] =

∞∑

m=−∞

x[m]h[m− n].

The convolution sum can be calculated in MATLAB using the convcommand.

17

Filtering in the frequency domain

We also know that for LTI systems, the Fourier transform is very powerful,since the convolution in the time domain can be replaced with amultiplication in the frequency domain , i.e.

y(t) = x(t) ∗ h(t)F←→ Y (ω) = X(ω) ·H(ω)

And correspondingly in the discrete domain (in principle)

y[n] = x[n] ∗ h[n]F←→ Y [k] = X [k]H[k]

Explore this in the development phase this week.There are some details we need to look into as well...

18

Length of filtered signals

When we filter a signal x[n], n = 0, 1, . . . , N − 1 with a filter h[n],n = 0, 1, . . . ,M − 1, the output signal y[n] will go fromn = 0, 1, . . . , (N − 1) + (M − 1)− 1.

In MATLAB notation: length(y)=length(x)+length(h)-1.

The output signal is longer than the input!

So, if we are doing the filtering in the frequency domain, using theDFT (fft in MATLAB), we need to make the frequency vectorslonger as well.

This is accomplished by zero-padding the transform.

The filtering is done by typing:

y = real(ifft(fft(x,M+N-1).*fft(h,M+N-1)))

19

Frequency selective filtering

So, by the frequency domain interpretation of filtering (convolution) wesee that we can easily design frequency selective filters.

Recall the previous signal example

0 2 4 6

−1

0

1

time, t (s)

x 1(t)

−50 0 500

0.5

1

frequency, f (Hz)

|X1(f

)|We realize now that we could remove the high-frequency component bymultiplying the frequency-domain with a window that cuts away theundesired frequencies, i.e. a filter which spectrum is zero for frequenciesabove some threshold.

20

Frequency selective filtering

...the result

0 2 4 6

−1

0

1

time, t (s)

x 1(t)

0 2 4 6

−1

0

1

time, t (s)

y 1(t)

This is an example of a low-pass filter, since low frequencies pass throughundisturbed while high frequencies are cancelled out.

21

Now, let’s go 2D!

In two dimensions, working with discrete signals (digital images), theconvolution theorem is generalized as follows:

y[m,n] =

M−1∑

k=0

N−1∑

l=0

x[k, l]h[m− k, n− l],

where x[m,n] is the original image and h[m,n] is the two-dimensionalfilter, sometimes called filter mask.

In MATLAB this is done by conv2.

22

The 2D discrete Fourier transform

The extension of the Fourier transform theory to the two-dimensional caseis straightforward. Since we’re working with digital images, let’s focus onlyon the discrete transform.

The 2D discrete Fourier transform is defined as:

X [u, v] =M−1∑

m=0

N−1∑

n=0

x[m,n]e−j2π(um/M+vn/N)

And the corresponding inverse transform

x[m,n] =1

MN

M−1∑

u=0

N−1∑

v=0

X [u, v]ej2π(um/M+vn/N)

These are available in MATLAB as fft2 and ifft2.

23

2D filtering in the frequency domain

Details...

Just as in the 1D case, the output image of the filter will be larger,due to the size of the filter mask.

Using conv2, i.e. filtering in the spatial domain, the results can be cutautomatically using the ’same’ option to conv2 (see MATLAB help fordetails).

Doing the filtering in the frequency domain, the transform has to bezero-padded to the proper size.

After the filtering you can then cut the image to the original size.

As in the 1D case, the 2D fourier transform and its inverse areinfinitely periodic (in both dimensions), ie. they wrap around.Consider this when you observe effects at the edge of your imagewhen converting back to spatial coordinates with the inverse fouriertransform.

You will practice these tasks in this weeks development phase.

24

2D filtering in the frequency domain

As the 2D discrete fourier transform (DFT) is complex, it can beexpressed in polar coordinates with a magnitude, and an anglularfrequency (also known as the phase ).

The components of the spectrum determine the amplitudes of thesinusoids that combine to form the resulting image. At any givenfrequency in the DFT image, a large amplitude implies a greaterprominance of a sinusoid of that frequency in the image.

The phase is a measure of the displacement of the various sinusoidswith respect to their origin.

While the magnitude of the 2D DFT gives the amplitudes of thesinusoids and determines the intensities in the image, the phasespecifies the angles (displacements) of the sinusoids and whereobjects are in the image.

Investigate this in the development phase this week.

25

The concept of frequency, revisited

When going to 2D in general, and digital images in particular, we need tothink about what we mean with frequencies.

For images, the transformed quantity X [u, v] is a function of twospatial frequency variables.

We no longer talk about Hertz or radians/sec, but simply spatialfrequencies.

Low frequencies still represent slow variations in the image, and highfrequencies represent rapid changes.

A smooth image, e.g. a photograph often contains large areas ofslowly varying intensity. These images have a dominant part of theirenergy concentrated to a few low-frequency components in theFourier-domain.

Edges in images imply rapid changes in the intensity, and willtherefore be represented by the high-frequency components of theimage’s spectrum.

26

2D filtering

Example

Consider the following filter mask:

h[m,n] =

{

1/25, m, n = 0, 1, . . . , 4

0, otherwise,

i.e. a 5× 5 moving average filter (taking the average of 25 pixels).

Let H[u, v] be the 2D discrete Fourier transform of the filter mask.

Also, consider an inverse filter, G[u, v] = 1/(H[u, v] + µ). (Where µ is asmall value to prevent division by zero)

27

2D filtering

Example (cont’d...)

Looking at the 1D frequency response of the uniform averaging filter weget the following

28

2D filtering

Example (cont’d...)

Looking at the frequency responses of the two filters we get the following

u

v

|H(u,v)|

−0.5 0 0.5

−0.5

0

0.5

0.2

0.4

0.6

0.8

1

u

v

|G(u,v)|

−0.5 0 0.5

−0.5

0

0.5

1

2

3

4

Consider, which frequencies respond strongly in each filter? Whichfrequencies are ”passed” (not removed) by each filter?

29

2D filtering

Example (cont’d...)

Some comments:

The first filter seems to be a low-pass filter, since low frequencies areallowed to pass through, but higher frequencies are damped.

The second filter is the inverse of the low-pass filter, so it should be ahigh-pass filter.

The low-pass filter should cause edges and other rapid changes inthe image to be blurred, while smooth surfaces should be left more orless unaffected.

The second filter should keep edges but smooth surfaces should beattenuated (reduced in intensity / magnitude).

Let’s look at the result...

30

2D filtering

Example (cont’d...)

original grayscale low−pass filtered high−pass filtered

31

2D filtering

Some general comments

Being able to analyze the spectral content of an image provides toolsto construct filters.

For example, if a distortion of an image can be modeled as a linearfilter, then the inverse filter should be able to compensate for thedistortion. One example could be motion blurring, caused by themotion of the object or the camera.

In the presence of noise, inverse filtering becomes difficult. This isbecause the filter may contain zeros in the spectrum. If there is noiseat those frequencies, the inverse filter will blow up the noise,drowning all other interesting information. Hence the µ (smallconstant) in the inverse example.

You will experiment with this in this weeks development phase.

32

Summary

Repetition of convolution and Fourier transforms in the 1D case.

Generalization to the 2D world.

Examples of filtering.

Chapter 4 covers frequency domain filtering in detail

Chapter 5 covers image restoration and topics involving removingblur and periodic noise from an image.

33

Tips for Development Phase 6

Be aware of what the range of intensities (values) are in your images.

Be careful with image rescaling as it can hide the range of intensitiesfrom you and makes small magnitures look as significant as largemagnitudes.

You could plot them in 3D with the mesh command.

Extra reading4.6.3 Periodicity4.6.5 Fourier Spectrum and Phase Angle4.7 The Basics of Filtering in the Frequency Domain4.7.2 Frequency domain filtering fundamentals4.7.3 Summary of steps for filtering in the frequency domain4.7.4 Correspondance between filtering in the spatial andfrequency domain

34

Fourier Descriptors for Dev Phase 8

Consider we have the perimeter of a simple convex object and wewant to characterise the shape of the object.

Consider a centre point within that object, and then consider that werepresent the perimeter of the object in polar coordinates (r, θ)

If we plot a graph of r,theta we will have a periodic function

We could apply a 1D discrete fourier transform to this plot to identifythe major frequencies that characterise the shape of the object.

More on this in Development Phase 8, and in DIP 11.2.3

35

Summing Up

Consider the following three questions;What do i need to work on?What have I learnt today?What was the main point left unanswered?

Write your answers in the journal with the lecture number at the topof the page.