In this section of the course we will be learning about the principles of 2D graphics and basic image manipulation.

Schedule

Lecture Topic Reading Sources 1
Week 2
1 Overview, Basic Concepts and Java2D Tour KNUDSEN, Chapters 1&2
Additional Notes
2 Colour, Colour Spaces and Colour Maps KNUDSEN2, Chapter 8, Chapter 11 p227-254
Additional Notes
3 Aliasing and Images KNUDSEN, Chapter 5, p95-104
Additional Notes
Week 3
4 Image Processing WATT3, Sections, 9.1 (not9.1.5)
KNUDSEN, Chapter 5, p95-104
Additional Notes
5 Vector Maths AMMERAAL, Sections 3.1-3.6
ROWE, Sections 2.1, 2.2
KNUDSEN, Chapter 5, p81-95
Additional Notes
6 Shapes, Curves and Fonts AMMERAAL, Section 4.1
WATT, Sections 7.1, 7.2
KNUDSEN, Chapter 3
Additional Notes
Week 4
7 Scene Graphs SLATER, Section 8.4
Additional Notes
8 Line Drawing SLATER, Section 17.3
AMMERAAL, Section 4.5
Additional Notes
9 Scan Conversion SLATER, Chapter 12
ROWE, Section 1.12
Additional Notes

1 The books referred to (which should all be in the library) are:

2 Note that the details of all the classes are not important, but read about how the bits are packed into ints, and the difference between interleaved and non-interleaved formats.
3 In Section, 2.1.8, note that a slightly different edge detection filter is used than we used in the lectures. The two filters detect slightly different types of edge. (Ours is better at horizontal and vertical lines).

Course Material and Notes

Lecture Notes

There is no official book. However, I will supply notes as we go along.

Java2D

Most information on the programming side comes straight from the source. The Java2D API Technology.

Other Resources

As indicated above, there is no single textbook for this course since books in this area tend to treat 2D graphics as a pre-cursor to 3D or image processing and thus they all miss large pieces of background.

If you are desperate to have large amounts of dead tree in your hands, I suggest reading or (if you are rich) buying the following book which will help you understand Java2D and some of the underlying algorithms:

  1. Java 2D Graphics by Jonathan B. Knudsen (O'Reilly)
If you are going to take 3D Computer Graphics in the 3rd year, then you might as well buy the following straight away:
  1. Computer Graphics and Virtual Enviroments by Slater, Steed and Chrysanthou (Addision-Wesley)
Other books on 2D graphics and Java include (in decreasing order of relevance):
  1. Computer Graphics in Java by Leen Ammeraal, Leendert Ammeraal
    Hard to find, but it gets good reviews.
  2. Computer Graphics with Java by Gleen Rowe, Palgrave
    Has some in-depth material on how to implement many classic 2D algorithms in Java. However the 2D section is short, and then he talks about Java3D which we don't use.
  3. Java 2D API Graphics by Vincent Hardy (Prentice Hall)
  4. Graphics Programming with Java (2nd Edition) by Roger T. Stevens
    Very introductory level about Java2D and does not talk about the underlying algorithms.
  5. The Computer Image by Watt and Policarpo
    An introduction to many areas of graphics, from image processing through, vision to 3D Graphics. Useful as a basic reference if you are interested generally in graphics.

Lab Exercises and Coursework

There will be one un-marked lab exercise and one marked coursework. The un-marked exercise is in preparation for the coursework, so you should attempt it and get feedback from the lab demonstrator Neill Campbell in the lab sessions.

The marked coursework, comprises a small number of programming exercises. Overall, coursework is worth 5% of the mark for 2011.

Lab Sessions are Fridays 14:00-16:00 in MPEB 1.21


Past Papers and Example Questions

2011 evolved from the course 2B16. The graphics material is the same. Note that 2B16 used to be called 2B14, so all of the following resources labelled 2B14 and 2B16 are appropriate for you. Past papers: