assignment -3 - qil.uh.edu -3 1. dft implementation a. forward fourier transform b. inverse fourier...
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/21.jpg)
![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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022042221/5ec7db4de2b32a13705ad586/html5/thumbnails/23.jpg)
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