HUMAN INTERACTION and MULTIMEDIA and Lab A - LModule LAB
Academic Year 2024/2025 - Teacher: FRANCESCO GUARNERAExpected 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
Attendance of Lessons
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
Subjects | Text References | |
---|---|---|
1 | Processing introduction | |
2 | User interaction and detecting mouse and keyboard input. | |
3 | Affine transformations for drawing. | |
4 | Object Oriented Programming in Processing, inheritance and data structures. | |
5 | Image processing, PImage class and methods. | |
6 | Coding 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.