Computer Vision and Image Processing

Teaching Image Processing and Computer Vision for engineering students

Course Overview

This course introduces the core ideas and practical techniques behind digital image processing and computer vision. It is aimed at engineering students who want to understand how images are represented, enhanced, analyzed, and used to build systems that can detect, measure, and recognize objects in the real world.

You will learn both:

  • Classical vision (filters, edges, features, geometry), and
  • Modern vision (learning-based methods, evaluation, and deployment basics).

The emphasis is on hands-on labs and reproducible experiments.

Learning Outcomes

By the end of the course, students should be able to:

  • Explain how images are formed and represented (sampling, quantization, color spaces).
  • Apply enhancement and restoration techniques (denoising, sharpening, contrast).
  • Implement core operations (convolution, gradients, morphology) and interpret results.
  • Perform segmentation and object measurement in real images.
  • Extract and match features for tracking and recognition tasks.
  • Understand basic camera geometry (pinhole model, calibration concepts).
  • Evaluate a vision pipeline using appropriate metrics and datasets.

Prerequisites

  • Basic programming (Python preferred)
  • Linear algebra basics (vectors, matrices)
  • Probability basics (helpful, not mandatory)

Tools and Setup

You can use any of the following environments:

  • Local Python (recommended)
  • Google Colab (no install; good fallback)

Typical libraries used:

  • OpenCV (opencv-python)
  • NumPy (numpy)
  • Matplotlib (matplotlib)
  • scikit-image (scikit-image)

If you are working locally, a minimal install is usually:

python -m pip install numpy matplotlib opencv-python scikit-image

Download Resources

Download Lecture Notes (PDF) View Github Repo