HUMAN INTERACTION and MULTIMEDIA and Lab M - Z
Module LAB

Academic Year 2023/2024 - Teacher: FRANCESCO GUARNERA

Expected Learning Outcomes

General learning objectives in terms of expected learning outcomes.

Knowledge and understanding: The purpose of the laboratory course is to acquire knowledge that will enable the student to understand how to program interactive system. Additionally, it will be provided concepts about programming which enable the student to design solution where image processing is required.

Ability to apply knowledge and understanding: the student will study Processing, a software and Java-based programming language. It will be helpful for practice on theoretical concepts.
Making judgments: Through coding 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

Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.

Required Prerequisites

Good programming skills. It is expected the student has passed Programming I and Programming II.


Attendance of Lessons

Attendance to classes is strongly recommended.

Detailed Course Content

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

Official Processing Reference: https://processing.org/reference/

“Algorithms for Visual Design Using the Processing Language” - Kostas Terzidis - Wiley Publishing.

“Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction” - Daniel Shiffman - Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

“Getting Started with Processing” - Casey Reas and Ben Fry - Make Books, Sebastopol, CA.

Course Planning

 SubjectsText References
1Processing introduction
2User interaction and detecting mouse and keyboard input.
3Affine transformations for drawing.
4Object Oriented Programming in Processing, inheritance and data structures.
5Image processing, PImage class and methods.
6Coding image processing algorithms.

Learning Assessment

Learning Assessment Procedures

The student have to code Processing sketches in the classroom.

Learning assessment may also be carried out on line, should the conditions require it.