Computer Laboratory

Course pages 2016–17

Computer Graphics and Image Processing

Principal lecturer: Prof Peter Robinson
Taken by: Part IB
Past exam questions

No. of lectures: 16
Suggested hours of supervisions: 4
Prerequisite courses: Algorithms
This course is a prerequisite for Advanced Graphics (Part II).


To introduce the necessary background, the basic algorithms, and the applications of computer graphics and image processing. A large proportion of the course considers the design and optimisation of algorithms, so can be considered a practical application of the lessons learnt in the Algorithms course.


  • Background. What is an image? What are computer graphics, image processing, and computer vision? How do they relate to one another? Colour. Human vision. Resolution and quantisation. Storage of images in memory. [2 lectures]

  • Rendering. Perspective. Reflection of light from surfaces. Geometric models. Ray tracing. [2 lectures]

  • Graphics pipeline. Polygonal mesh models. Transformations using matrices in 2D and 3D. Homogeneous coordinates. Projection: orthographic and perspective. Graphics hardware and OpenGL. Lighting: flat shading, Gouraud shading, Phong shading. Texture mapping. [4 lectures]

  • Underlying algorithms. Drawing a straight line. Drawing circles and ellipses. Cubic curves: specification and drawing. Clipping lines. Clipping polygons. Filling polygons. 3D scan conversion using the z-buffer. Anti-aliasing and the A-buffer. [4 lectures]

  • Technology. Colour spaces. Output devices: brief overview of two display technologies (LCD, DMD) and two printer technologies (ink jet and laser printer). Image capture. [2 lectures]

  • Image processing. Operations on images: filtering, point processing, compositing. Half-toning and dithering, error diffusion. [2 lectures]


At the end of the course students should be able to:

  • explain the basic function of the human eye and how this impinges on resolution, quantisation, and colour representation for digital images; describe a number of colour spaces and their relative merits; explain the workings of two display technologies and two printer technologies;

  • describe and explain the following algorithms: mid-point line drawing, mid-point circle drawing, Bezier cubic drawing, Cohen-Sutherland line clipping, scanline polygon fill, Sutherland-Hodgman polygon clipping, z-buffer, A-buffer, texture mapping, error diffusion;

  • use matrices and homogeneous coordinates to represent and perform 2D and 3D transformations; understand and use 3D to 2D projection, the viewing volume, and 3D clipping;

  • understand Bezier curves and patches; understand sampling and super-sampling issues; understand lighting techniques and how they are applied to z-buffer polygon scan conversion; understand texture mapping;

  • explain how to use filters, point processing, and arithmetic operations in image processing and describe a number of examples of the use of each; explain how halftoning, ordered dither, and error diffusion work.

Recommended reading

Foley, J.D., van Dam, A., Feiner, S.K. & Hughes, J.F. (1990). Computer graphics: principles and practice. Addison-Wesley (2nd ed.).
Gonzalez, R.C. & Woods, R.E. (2008). Digital image processing. Addison-Wesley (3rd ed). [The second edition (1992) and the first edition (Gonzalez & Wintz, 1977) are as useful for this course.]
* Shirley, P. & Marschner, S. (2009). Fundamentals of Computer Graphics. CRC Press (3rd ed.).
Slater, M., Steed, A. & Chrysanthou, Y. (2002). Computer graphics and virtual environments: from realism to real-time. Addison-Wesley.