Machine Vision

University of Oulu
Home Noppa 521466S >  Assignments


The course is not in progress or the course does not use Noppa. Contents of this page may be out of date.

The course will include 8 homework assignments that must be completed within one week after they have been published on this page. Each homework is worth of 2 points. By correctly answering to all homework assignments you will earn 16 points. In order to take the exam you need at least 8 points.

Assignments are small tasks that you need to complete with Python together with OpenCV. The solutions are returned by email. Assignments can be made in groups of two students. For every assignment, there are instructions specifying what must be returned. The results are published on a web page with the student numbers (no names). Therefore, it is important that you include your student number in the report.


Tentative schedule:

Assignment  A1  A2  A3  A4  A5  A6  A7  A8
15.1. 21.1. 28.1. 4.2. 12.2. 18.2.
3.3. 10.3.


Expand all | Collapse all
21 Jan 19 at 23.59 A1 - Camera calibration
Download the notebook from the link below.
27 Jan 19 at 23.59 A2 - Color spaces
Download the notebook from the link below.
03 Feb 19 at 23.59 A3 - Segmentation
Download the notebook from the link below.
10 Feb 19 at 23.59 A4 - Texture
Download the notebook from the link below.
18 Feb 19 at 23.59 A5 - Recognition
Download the notebook from the link below.
24 Feb 19 at 23.59 A6 - Motion
Download the notebook from the link below.
03 Mar 19 at 23.59 A7 - Hough transform
Download the notebook from the link below.
10 Mar 19 at 23.59 A8 - Triangulation
Download the notebook from the link below.

Data files

Jupyter notebooks can be downloaded from here.

Late homework policy

If you miss the deadline the amount of points will be reduced based the following rules:

  • 0-2 days → 75%
  • 2-4 days → 50%
  • 4-6 days → 25%
  • 6+ days → 0% 


Results for all assignments can be found here.



The programming assignments are delivered as browser-based Jupyter notebooks, which are documents containing both live code and rich text elements, like headers, paragraphs, equations, figures and links. In practice, this means that you should download the assignment notebook from this website and perform the requested image processing tasks in the reserved code shells, and answer the questions written in bold.

Naturally, it is possible to do the programming part with your favorite Python editor, etc. However, it is highly recommended to work directly on the provided notebooks because they provide detailed step-by-step instructions how to perform the image processing tasks, and you will have to put your code in the notebook form in the end anyway.


The easiest and recommended way of using Jupyter notebooks is to install Anaconda (Python 3.7 version) on your own computer. Anaconda is an open-source scientific package manager that includes all the packages you will use while making the programming assignments, including matplotlib, NumPy, SciPy, scikit-image and Jupyter.

For installation follow these instructions (use Python 3.7 version).


The assignments use some functions from OpenCV. In Anaconda, OpenCV can be installed by opening Anaconda Prompt and writing: 

conda install -c menpo opencv

CSC notebooks

For those who do not want to install Anaconda to their computer, one option is to use the Jupyter notebooks provided by CSC. Here are brief instructions:

1. In a browser open the page and log in with Haka and the university credentials.

2. Select the environment Jupyter Machine Learning and press Launch new.

3. Press Open in browser to lauch the file manager view.

4. Press New and Terminal to open a terminal tab.

5. In the terminal write:

pip install opencv-python==

pip install opencv-contrib-python==

exit    (and close the tab)

6. In the file manager view press New and Python 3 to launch a new notebook.

Notice! Lifetime of the notebooks is limited to 10 hours. You need to download your work before the time runs out.

Using Jupyter notebooks

To begin working with Jupyter notebooks, just navigate to the folder where you have downloaded the assignment files, and run a notebook served from command line (using terminal on Mac/Linux or command prompt on Windows) by typing:

jupyter notebook

This opens the Jupyter notebook dashboard in your web browser at your current working directory where you are able to open the interactive Python notebook (.ipynb) files.

Basic commands:

  • Click a cell or press enter to enter 'edit mode' when you can type into the cell like a normal text editor 
  • Press esc to enter 'command mode' when you are able to edit the notebook as a whole but not type into individual cells
  • The keyboard shortcuts are active only in 'command mode'
  • Run the notebook document step-by-step (one cell a time) by pressing shift + enter 
  • Run the whole notebook by clicking on the menu Cell -> Run All
  • Restart the kernel, i.e. clear variables, etc., by clicking on the menu Kernel -> Restart or the restart button

For more detailed tutorial on Jupyter notebooks, please refer to this video, for instance.

For those who have not completed Digital Image Processing (521467A) it is highly recommended to go through the pre-tutorial notebooks to learn some basic functions and practices needed for making the programming assignments. Another resource for learning Python and Jupyter is the Course Introduction to Python notebook provided by CSC.

If you are familiar with MATLAB, there are several NumPy related tutorials and reference cheat sheets that will be handy.

Instructions for the first week to get started with the programming exercise:

  1. Install Anaconda (Python 3.7 version) and OpenCV (or use the CSC notebooks)
  2. Watch the video tutorial on Jupyter notebooks
  3. Go through the pre-tutorials
Printable version
Updated 04 Mar 19 at 11:52

University of Oulu oulun.yliopisto(at)
Tel. +358 294 48 0000
Fax +358 8 553 4112
PL 8000
FI-90014 Oulun yliopisto