MEng Software Engineering

Year of entry: 2020

Course unit details:
Computer Graphics and Image Processing

Unit code COMP27112
Credit rating 10
Unit level Level 2
Teaching period(s) Semester 2
Offered by Department of Computer Science
Available as a free choice unit? Yes


This course covers the fundamental principles of Computer Graphics, and Image Processing. These two separate, but related, disciplines play increasingly important roles in modern applied Computer Science. The course is lecture-based and is supported by a set of laboratory exercises and self-study coursework projects. We teach Graphics using OpenGL from C; for Image Processing we use MATLAB. This is a very popular course taken by most 2nd Year students in the School of Computer Science.


Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.


The importance of visual interfaces has never been greater. Graphical interfaces have become ubiquitous, from desk-top interaction, to games and three-dimensional virtual environments. In parallel, there has been an explosion in digital image processing and analysis. We take for granted digital photography and video, while our health services rely on digital X-ray systems, CT and MRI scanners for seeing inside our bodies. Meanwhile, the visualization of computer simulations is an essential aspect of product design and testing, genome exploration, drug design, and climate modelling. The demand for computer scientists with advanced knowledge of such areas has never been greater.

The theme will enhance your knowledge and understanding, answering such questions as:

  • How are three-dimensional environments represented in a computer, and how are interactive 3D worlds created?
  • How are 2D and 3D representations combined ? for example, how can we recover 3D geometry from 2D images?
  • How are the basic mathematical techniques and algorithms used to build useful applications?
  • How are images stored, processed and manipulated?
  • How can computers interpret images captured by cameras and other recording devices?

Learning outcomes

  • Describe the principles of interactive computer graphics

  • Design systems using fixed-pipeline OpenGL

  • Apply the mathematics of 3D transformations and viewing

  • Describe the principles of the rendering pipeline

  • Describe the principles of image processing

  • Implement fundamental image processing algorithms


Fundamentals (1 week)

2 and 3 D Coordinate systems. Vectors, matrices and basic vector/matrix operations.2 and 3 D geometric transformations (translation, rotation, scaling, affine).

3D Modelling and Illumination (5 weeks)


The camera model. Viewing and projection.  Points, lines, B?zier curves. Polygons. Local illumination: ambient, diffuse and specular components. Interpolation: intensity (Gouraud) and normal vector (Phong). Surface detail: textures, bump mapping. Model structuring using scene graphs. Masters and instances. Inheritance of transformations and attributes.

Practical core

OpenGL (in C) laboratory exercises. Self-paced Coursework Assignments using example programs and software tools (with a small amount of experiment-driven programming).

Image Transformations (2 weeks)


Pixels, pixel values, grey level, spatial resolution, colour representations, image transformations: point transformations (windowing, histogram equalisation, colour transformations ? colour spaces).

Practical core

C Programming, manipulating images using C, low level image processing.

Image Enhancement  (3 weeks)


Local processes, convolution, image smoothing (local averaging, weighted averaging), size of support, Gaussian mask. Edge enhancement (unsharp masking). Edge detection (Prewitt, Sobel, Canny), Thresholding, blob detection, simple measurement (geometric features).  Rank order filters (median, max-min).

Practical core

MATLAB exercises in image processing.  Noise reduction.  General image convolution code.  Using the code to make an edge detector (Sobel, Prewitt), Combined smoothing and edge detection ? Scale.

Teaching and learning methods


24 hours spread over 12 weeks

Examples classes

5 hours of assessed, self-study Coursework Assignments.


10 hours in total, 5 2-hour sessions.

Employability skills

Analytical skills
Project management
Problem solving

Assessment methods

Method Weight
Written exam 70%
Written assignment (inc essay) 5%
Practical skills assessment 25%

Feedback methods

Face to face feedback and marking in programming laboratories.

Recommended reading

COMP27112 reading list can be found on the School of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 24
Practical classes & workshops 10
Independent study hours
Independent study 64

Teaching staff

Staff member Role
Toby Howard Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details