Table of Contents

Linear and Non-linear Filtering

The two following labs deal with filtration of images, which can be used for smoothing, deblurring, denoising and other applications.

The theory behind the labs can be found in the lectures:

Start by downloading the template of the assignment.

Use test_script.m to check your solution.

Brute-force convolution and simple kernels

1a: implement brute-force convolution using loops (convolution_2D.m) - 2 points

1b: implement the generator for specified kernels (get_kernel.m): - 0.2 point / kernel - 1 point total

Compare your results to the reference:

Convolution using Fourier Transform

2: implement convolution using Fourier Transform (convolution_ft.m) - 1 point

Compare your results to the reference:

Convolution with separable kernels

3: implement the generator of selected separable kernels (get_kernel.m) - 0.5 point / kernel - 1.5 points total

Compare your results to the reference:

Sharpening with Wiener filter

4: implement Wiener filter (wiener_filt.m) - 2 points

Compare your results to the reference:

Side note: if you want to try to remove the motion blur in the example photo in the lecture, you can download the photo here.

Denoising with bilateral filter

5: implement basic Bilateral filter (bilateral_filt.m) - 2.5 points

Compare your results to the reference:

When you are done, upload the complete zip archive containing your implemented files to BRUTE:
  • bilateral_filt.m
  • convolution_2D.m
  • convolution_2D_ft.m
  • get_kernel.m
  • wiener_filt.m

Keep the files in the root of the zip archive (zip directly the files, NOT a folder containing the files). The evaluation system searches for the files just in the root of zip archive.

The points will be assigned manually by TA after the deadline.