Academic Year 2018/2019 - 2° Year
Teaching Staff: Filippo STANCO and Dario ALLEGRA
Credit Value: 9
Scientific field: INF/01 - Informatics
Taught classes: 36 hours
Exercise: 36 hours
Term / Semester:

Learning Objectives

General learning objectives in terms of expected learning outcomes.

Knowledge and understanding: The purpose of the course is to acquire knowledge that will enable the student to understand the theoretical and physical mechanisms underlying the human visual system, the formation and processing of digital images, of the improvement of the visual quality of digital images.
Ability to apply knowledge and understanding: the student will acquire the skills needed to acquire, edit, compress, and save a digital image. Particularly a part of the course will be related to the study of the Processing software to apply such theoretical knowledge.
Making judgments: Through examples in the classroom, the student will be put into the condition of understanding whether the solutions offered by him meet a certain degree of quality.
Communication skills: The student will acquire the necessary communication skills and technical language skills in the multimedia field.
Learning Skills: The aim of the course is to provide the student with the necessary theoretical and practical methodologies to deal with and solve new problems that arise during a work activity. To this end, several topics will be addressed in lesson by involving the student in the search for possible solutions to real problems.

Course Structure

Classroom lessons

Laboratory lessons

Detailed Course Content

Introduction to digital images

Image formation in the human eye

Thin lens equation

Optical illusions

Digital sensors

The Bayer pattern

Color interpolation

Raster images and vector images

Representation of raster images




Digital Image Resolution

Interpolation replication, bilinear and bicubic



The RGB, CMY, HSV, Munsell, YUV, YCbCr

Indexed images and palettes


The histogram of an image

Punctual operations and LUTs


Linear and invariant operators for translation

Noise reduction

Edge detection

Space domain

Frequency domain

Fourier transform

The convolution and convolution theorem

Lossy and lossless compression

Shannon's theorem for compression

Huffman Encoding

The Jpeg standard


Programming in Processing

Starting with Processing

  • Main methods and variables: settings(), setup(), draw() e frameRate, width, heigth, etc…;
  • Main drawing methods: ellipse(), rect(), line(), bezier(), beginShape(), etc… and drawing modifiers ellipseMode(), rectMode(), ecc…
  • type color and method color().


User interaction and mouse/keyboard events

  • variables mousePressed, keyPressed, mouseButton, key, keycode;
  • methods mousePressed(), keyPressed(), mouseReleased(), mouseClicked().


Affine transformation for drawing:

  • Methods rotate(), shearX(), shearY(), translate(), applyMatrix() più pushMatrix() e popMatrix().


Classes and objects in Processing, inheritance and data structure.


Image processing, class PImage and methods

  • methods of Processing: loadImage(), createImage(), copy(), red(), green(), blue(), saveFrame();
  • methods and variables of PImage class: save(), get(), set(), loadPixels(), updatePixels(), pixels, etc…..


Implementation of image processing algorithms

  • uniform and logarithmic quantization;
  • replication interpolation and PSNR evaluation;
  • point operations: negative, logarithm and power-law (gamma);
  • histogram stretching and equalization;
  • affine transformation for images: rotation, scaling, shear;
  • rank filters: median, max and min;
  • convolutional filters: sobel, prewitt, N box, etc…;
  • bitplane representation;

Textbook Information

Digital Image Processing, (3rd Edition) Rafael C. Gonzalez, Richard E. Woods, Ediz. Pearson, Prentice Hall