This repository contains solutions to the assignments of the course "Image Processing & Computer Vision" conducted by Prof. Dr. Kwitt at the University of Salzburg, Department of Computer Science.
The course is part of the Master degree programs "Applied Image and Signal Processing". The Image Processing & Computer Vision course was conducted in WS 2017.
.
Write a Python function avg_H_global which takes as input the filename of an RGB image and computes the average value of the H channel. This value should be returned
Write a Python function avg_H_per_block which takes, as input, a filename of an RGB image as well as a tuple (N,M) that specifies a block size.
Write a Python function which computes a Gaussian pyramid of a grayscale image. In particular, the function should take either a grayscale image as input, or a RGB color image and compute a N-level Gaussian pyramid decomposition. We simplify this example
Write a Python function that takes, as input, a grayscale image and performs histogram equalization. The function should output the histogram-equalized image.
Write a Python function that takes two images, a source image and a target image (both grayscale) and then matches the source image's histogram to the target images' histogram.
implemention of median filtering with different neighborhood sizes and implemention to compute the peak-signal-to-noise ratio (PSNR)
same as Exercise 3.1 from above, but use a Gaussian smoothing filter and vary the values for sigma (i.e., the standard deviation of the Gaussian filter).
Write a Python function that performs smoothing (with a Gaussian kernel) in the Fourier domain.
Implementing an additive (spread-spectrum) watermarking scheme, based on the 2D wavelet transform.
Implementing a simple (correlation-based) watermark detector for the watermarking algorithm of Exercise 5.1 and evaluate this detector with a couple of randomly chosen watermarks.
In this exercise, we will implement a very simple version of the Histogram-Of-Oriented-Gradients (HOG) descriptor of an image(region).
Download the 15 scenes dataset and select a couple of images from each category. Then, compute for each grayscale image its simple HOG descriptor. Voila, if you now do 1-Nearest Neighbor classification (e.g., using the Euclidean distance between the vectors) you have a first, admittely very simple, image classifier.
In this exercise, we will implement a relatively simple image segmentation algorithm that is similar to the ideas presented in the SLIC superpixels paper.
I do recommend to use Anaconda Python. For Mac/Linux/Windows, download the
Anaconda installer from here and follow
the installation instructions. To check your installation, you can try to
start the Python interpreter and load skimage
and sklearn
(which come
as part of the Anaconda installation). E.g.,
python
>> import skimage
If this works, your are all set. To start a Jupyter notebook, run
jupyter notebook
- Python 2.7 or 3
- Skimage Framework
- OpenCV Framework
- Numpy / Scipy / Pickle Framework