assignment -3 - qil.uh.edu -3 1. dft implementation a. forward fourier transform b. inverse fourier...

23
Assignment -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering a. Ideal (Low and High Pass) b. Butterworth (Low and High Pass) c. Gaussian (Low and High Pass) Due Date: Apr 7 th , 11:59 PM

Upload: others

Post on 21-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Assignment -3

1. DFT Implementation

a. Forward Fourier transform

b. Inverse Fourier transform

c. Discrete Cosine transform

d. Magnitude of DFT

2. Frequency filtering

a. Ideal (Low and High Pass)

b. Butterworth (Low and High Pass)

c. Gaussian (Low and High Pass)

Due Date: Apr 7th , 11:59 PM

Page 2: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

DFT Implementation

1. Input a matrix of integers (15X15)1. Compute forward Fourier transform

2. Compute inverse Fourier transform

3. Compute Discrete Cosine transform

4. Compute magnitude of DFT

Page 3: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Forward Fourier transform

Input 15X15 matrix (𝐼) Output DFT 15X15 matrix (𝐹)

i u

j v

DFT

Complex values

Page 4: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Forward Fourier transform

𝐹 𝑢, 𝑣 =

𝑖=0

𝑁−1

𝑗=0

𝑁−1

𝐼 𝑖, 𝑗 𝑒− −12𝜋𝑁(𝑢𝑖+𝑣𝑗) , 𝑁 = 15

𝐹 𝑢, 𝑣 =

𝑖=0

𝑁−1

𝑗=0

𝑁−1

𝐼 𝑖, 𝑗 [cos2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 − −1 sin

2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 ]

In python, −1 = 1𝑗

Page 5: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Forward Fourier transform

𝐹 𝑢, 𝑣 =

𝑖=0

𝑁−1

𝑗=0

𝑁−1

𝐼 𝑖, 𝑗 𝑒− −12𝜋𝑁(𝑢𝑖+𝑣𝑗) , 𝑁 = 15

𝐹 𝑢, 𝑣 =

𝑖=0

𝑁−1

𝑗=0

𝑁−1

𝐼 𝑖, 𝑗 [cos2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 − −1 sin

2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 ]

u = {0,..14}, v = {0,..14}

Page 6: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Inverse Fourier transform

Input 15X15 matrix (𝐼) Output DFT 15X15 matrix (𝐹)

i u

j v

IDFT

Complex values

Page 7: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Inverse Fourier transform

𝐼 𝑖, 𝑗 =

𝑢=0

𝑁−1

𝑣=0

𝑁−1

𝐹 𝑢, 𝑣 𝑒 −12𝜋𝑁(𝑢𝑖+𝑣𝑗) , 𝑁 = 15

𝐼 𝑖, 𝑗 =

𝑢=0

𝑁−1

𝑣=0

𝑁−1

𝐹 𝑢, 𝑣 [cos2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 + −1 sin

2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 ]

i = {0,..14}, j = {0,..14}

End up getting complex numbers

Page 8: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Discrete Cosine transform

𝐹 𝑢, 𝑣 =

𝑖=0

𝑁−1

𝑗=0

𝑁−1

𝐼 𝑖, 𝑗 [cos2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 ]

No complex part

Page 9: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Magnitude of DFT

𝐹 𝑢, 𝑣 =

𝑖=0

𝑁−1

𝑗=0

𝑁−1

𝐼 𝑖, 𝑗 [cos2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 − −1 sin

2𝜋

𝑁𝑢𝑖 + 𝑣𝑗 ]

𝑀 = |𝐹(𝑢, 𝑣)|

Please compute magnitude in the function. Do not use abs function.

Page 10: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Frequency filtering

• Input Image

Page 11: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

11

Computation of the DFT• Fast algorithms for the DFT are collectively referred to as

Fast Fourier Transform (FFT) algorithms.

• We will not delve into the design of these, as they are available in most math library programs.• Divide and conquer

• Exploit Symmetry

• Reduces complexity from 𝑂(𝑛2) to 𝑂(𝑛 log 𝑛)

Page 12: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Forward Fourier transform

1. Compute the Fourier transform (numpy has fftand opencv both has dft)

2. Compute the shift (Ex. Numpy has fftshift)

Note: Numpy represents real part and imaginary part in a single matrix, however, opencv uses two matrices to represent the same.

Page 13: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Displaying dft

• Dft is one of the images that needs to be save.

• However the magnitude of the dft could be large values

• In order to save as an image that is visible,

1. Do a logarithmic compression (Ex. np.log(mag(dft))

2. Convert to uint8 to save it as greyscale image

Page 14: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Example

Page 15: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Mask

• Write functions to compute six masks

1. Ideal Low Pass (one parameter: cutoff frequency)

2. Ideal High Pass (one parameter: cutoff frequency)

3. Butterworth Low Pass (Two parameters: cutoff and order)

4. Butterworth High Pass (Two parameters: cutoff and order)

5. Gaussian Low Pass (one parameter: cutoff frequency)

6. Gaussian High Pass(one parameter: cutoff frequency)

Page 16: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Mask

Page 17: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Filtering

• Filter the image using convolution theorem

• Filtered DFT is one of the images that needs to be saved.

• Follow same process as before (DFT image)

Page 18: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Filtered DFT

Page 19: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Inverse Fourier transform

• Compute the inverse shift (Ex. Numpy fft library has ifftshift)

• Compute the inverse fourier transform (opencv has idft and numpy has ifft)

Page 20: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Filtered Image

• The inverse Fourier transform will give complex numbers.

• To transform into a meaningful image

1. Compute the magnitude

2. Do a full scale contrast stretch (to greyscale values)

3. Take negative if needed

Page 21: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering
Page 22: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Assignment -3

1. DFT Implementation(4 Pts)

2. Frequency filtering (11 Pts)

Total: 15 Pts.

Page 23: Assignment -3 - qil.uh.edu -3 1. DFT Implementation a. Forward Fourier transform b. Inverse Fourier transform c. Discrete Cosine transform d. Magnitude of DFT 2. Frequency filtering

Submission Instructions

Must use the starter code available in Github

Submission allowed only through Github

You will receive an email with invitation to join

Github classroom

Start by reading the readme.md file.

Instructions are available here

Github will automatically save the last commit

as a submission before the deadline