L2 Elaborazione di immagini in C/C++
|
|
- Ignazio Pepe
- 7 anni fa
- Visualizzazioni
Transcript
1 L2 Elaborazione di immagini in C/C++ Corso di Visione Artificiale Ing. Luca Mazzei
2 AA 2009/2010 Visione Artificiale 2 Formato immagini Utilizziamo il formato PGM PPM P4 = PBM P5 = PGM P6 = PPM P Dimensioni Immagine Valore massimo del colore Informazioni aggiuntive Es. TimeStamp, velocita (0,0) (0,1) (1,0) (319,239) PBM, PGM: 1 byte per pixel PPM: 3 byte per pixel
3 AA 2009/2010 Visione Artificiale 3 Formato immagini In memoria il bitmap è un vettore, buffer Width lunghezza = numero di colonne Height altezza = numero di righe (0,0) i = 0 i = w-1 (W,H)
4 Conversione immagini Suite Imagemagick: convert.jpg.ppm.pgm.png.bmp convert input_img.xxx output_img.xxx (con ubuntu) apt-cache search imagemagick imagemagick - image manipulation programs AA 2009/2010 Visione Artificiale 4
5 AA 2009/2010 Visione Artificiale 5 Impostazione algoritmo Immagine input ed immagine appoggio, 2 buffer Buffer di unsigned char, p(x,y) [0, 255] Doppio for scansione buffer immagine Scansione per righe -> adiacenze in memoria for(unsigned int jj = 0; jj < height ; ++jj){ //scorre righe for(unsigned int ii = 0; ii < width ; ++ii){ //scorre colonne if(input_buffer[(jj*width)+ii] > 70) { output_buffer [(jj*width)+ii] = 255; } else output_buffer [(jj*width)+ii] = 0; } } }
6 AA 2009/2010 Visione Artificiale 6 Librerie STL (Standard Template Library) Libreria standard basata su template Riferimenti Contenitori, iteratori ed algoritmi Utile per operazioni su strutture dati non presenti nel C++ base
7 Librerie STL (Standard Template Library) Contenitori: vector, list, map, stack // create a vector of random integers #include <vector> std::vector<int> v; for( int i = 0; i < 10; ++i ) { int num = (int) rand() % 10; v.push_back( num ); } // print elements std::cout << "vector elements: "; for( int i = 0; i < v.size(); ++i ) { } std::cout << v[i] << " "; std::cout << std::endl; AA 2009/2010 Visione Artificiale 7
8 Librerie STL (Standard Template Library) Iterators Puntatori ad elementi di un container forward, bidirectional, random access std::vector<int> v1(3, 5); for(std::vector<int>::iterator it = v1.begin(); it!= v1.end(); ++it){ std::cout << *it << std::endl; } AA 2009/2010 Visione Artificiale 8
9 Librerie STL (Standard Template Library) Algorithm Min, max, swap, count, sort #include <algorithm> #include <vector> std::vector<int> v; v.push_back( 23 ); v.push_back( -1 ); v.push_back( 9999 ); v.push_back( 0 ); v.push_back( 4 ); std::cout << "Before sorting: "; for( unsigned int i = 0; i < v.size(); i++ ) { std::cout << v[i] << " "; } std::cout << std::endl; sort( v.begin(), v.end() ); std::cout << "After sorting: "; for( unsigned int i = 0; i < v.size(); i++ ) { std::cout << v[i] << " "; } std::cout << std::endl; AA 2009/2010 Visione Artificiale 9
10 Strumenti a disposizione per programmare Image.h main.cpp main_color.cpp (usare solo dopo aver provato a farla) main_color2grey.cpp Esempi STL AA 2009/2010 Visione Artificiale 10
11 AA 2009/2010 Visione Artificiale 11 Image.h struct Image { /// geometry unsigned int width, height; /// bit per pixel (8 is greyscale, 24 is rgb color) unsigned int bpp; /// the bitmap unsigned char *buffer; public: Image(); ~Image(); /// Allocate the inner buffer width,height the image geometry bpp Bit Per Pixel (8 grey, 24 color rgb) void Build(unsigned int width, unsigned int height, unsigned int bpp); /// Save the image filename bool Save(const char *filename) const; /// Load the image filename /// and initialize with,height,bpp and buffer field of struct bool Load(const char *filename); };
12 AA 2009/2010 Visione Artificiale 12 Binarizzazione Per ogni pixel confronto con una soglia
13 AA 2009/2010 Visione Artificiale 13 Istogramma Scansionando tutto l array dell immagine per colonne (o righe) accumulo i valori in un vettore i = 0 i = 255 Posso salvare i valori in un file e ottenere il grafico con Gnuplot
14 AA 2009/2010 Visione Artificiale 14 Immagine Differenza diff_img = img1 img2 Differenza singoli pixel Differenza con sogliatura finale image background = difference
15 AA 2009/2010 Visione Artificiale 15 Ritaglio immagine Seleziono un area di interesse dell immagine (Bounding Box) Nuovo buffer contenente il bounding box Dimensioni? Come gestire le coordinate?
16 AA 2009/2010 Visione Artificiale 16 Rilevamento bordi Con operazioni locali, maschera nxn Maschera di Sobel Sobel orizzontale Sobel verticale Laplace? Prewitt roberts Estrazione bordi + binarizzazione Roberts Sobel verticale orizzontale Prewitt verticale orizzontale
17 AA 2009/2010 Visione Artificiale 17 Filtro convolutivo Filtro mediano, operazione locale nxn Efficienza in base alla maschera Utilizzo std::vector e algoritmo std::sort
18 AA 2009/2010 Visione Artificiale 18 Etichettatura (Labelizzazione) Es. Sull immagine differenza per evidenziare i blob (aree dell immagine differenza di forma indefinita)
19 vector<punto> AA 2009/2010 Visione Artificiale 19 Labelizzazione a macchia d olio (floodfill) L Nuovo Label L=L+1 push 1,2 pop Espansione 3,2 push Controllo vicinato 2,3 3,3
20 AA 2009/2010 Visione Artificiale 20 Immagini a colori Come è fatto il vettore bitmap? Impostazione doppio for? Sogliatura? Rimane per casa
21 AA 2009/2010 Visione Artificiale 21 Assegnamento Per le immagini pgm: Copia dell immagine Istogramma Sogliatura, binarizzazione Abbassamento luminosita Filtro mediano Estrazione dei contorni Differenza tra immagini Ritaglio di una porzione dell immagine Labellizzazione a macchia d olio Per le immagini a colori: Copia dell immagine Istogramma per ogni valore del pixel RGB Sogliatura, binarizzazione Abbassamento luminosita Filtro mediano sui tre canali Estrazione dei contorni Differenza tra immagini Ritaglio di una porzione dell immagine
La classe std::vector della Standard Template Library del C++
La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente
DettagliCorso di Grafica Computazionale
Corso di Grafica Computazionale STL & VCG Docente: Massimiliano Corsini Laurea Specialistica in Ing. Informatica Università degli Studi di Siena Introduzione Alla fine degli anni 70 Alexander Stepanov
DettagliLa programmazione Object Oriented e le sue applicazioni in Fisica.
La programmazione Object Oriented e le sue applicazioni in Fisica. Gabriella Cataldi, INFN Lecce Daniele Martello, dip. Fisica & INFN Lecce definizione di variabili Un metodo per automatizzare il processo
DettagliStandard Template Library
Standard Template Library Standard Template Library Progettata per gestire insiemi di dati in modo comodo ed efficiente senza conoscere dettagli implementativi Fa parte dello standard C++ È basata a sulla
DettagliI container della STL: all interno di
I container della STL: all interno di std::vector Valentino Picotti 27 maggio 2015 1 Introduzione 2 Standard Template Library Template Container e algoritmi standard Iteratori 3 Case study: std::vector
DettagliAlgoritmi e Strutture Dati. Lezione 1
Algoritmi e Strutture Dati Lezione 1 www.iet.unipi.it/a.virdis Antonio Virdis antonio.virdis@unipi.it 1 Ma io so già programmare! Fondamenti I Sia dato un array contenente delle frasi. Scrivere un programma
DettagliIntroduzione alla STL
Introduzione alla STL Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di: Giancarlo Cherchi Introduzione Cosa s intende per STL? STL? Standard Template Library E una libreria di programmazione
DettagliProgrammazione template
Programmazione template Funzionalità ed operatori Anche se con comportamenti simili, i vari tipi (int, float, double) in C++ non sono interscambiabili automaticamente una medesima azione (es. la somma)
DettagliEsercizi. Filtraggio
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)
DettagliGrammatica di base: Pointers
Grammatica di base: Pointers Esistono I puntatori a funzioni. Bisogna esplicitare esattamente il tipo di ritorno e il tipo di argomento. Per evitare ambiguità con il prefisso * nel declarator, il nome
DettagliLezione 3 Tipi di Dato Derivati
Lezione 3 Un tipo di dato derivato è ottenuto a partire da tipi di dato predefiniti attraverso gli operatori *, &, [] definendo enumerazioni definendo struct I tipi di dato derivati non sono tipi di dati
DettagliPartiamo da un esempio: voglio realizzare un sw per la gestione dei miei contatti personali
C++: STL: CONTAINER STL: CONTAINER Partiamo da un esempio: voglio realizzare un sw per la gestione dei miei contatti personali Realizzo classe ElencoTelefonico che offre servizi per gestione dei record.
DettagliL2 Operazioni su buffer di memoria. Corso di Visione Artificiale A.A. 2016/2017
L2 Operazioni su buffer di memoria Corso di Visione Artificiale A.A. 2016/2017 Argomenti Puntatori in C Primitive base di OpenCV AA 2016/2017 Visione Artificiale 2 Puntatori in C Un puntatore è una variabile
DettagliStudio di tecniche per la rivelazione di traiettorie di veicoli in movimento in sequenze video
Dipartimento di Elettronica e Telecomunicazioni Università di Firenze Laboratorio Comunicazioni & Immagini Studio di tecniche per la rivelazione di traiettorie di veicoli in movimento in sequenze video
DettagliProgrammazione generica
Programmazione generica Il C++ fornisce un metodo per creare un polimorfismo parametrico. E possibile utilizzare lo stesso codice per tipi differenti: il tipo della variabile diventa un parametro template
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Informatica Università degli Studi di Milano 14 Maggio 2013 Idea Programma = Algoritmi + Strutture
DettagliSegmentazione di impronte digitali. Annalisa Franco
Segmentazione di impronte digitali Annalisa Franco annalisa.franco@unibo.it http://bias.csr.unibo.it/vr/ 2 La segmentazione Scopo di questa esercitazione è l implementazione di una tecnica di segmentazione
DettagliTrasformare e migliorare
Trasformare e migliorare Elaborazione di immagini Da f(x,y) a g(x,y) pixel trasformati secondo un determinato algoritmo f(x,y) g(x,y) Scopi dell elaborazione Eliminazione dei disturbi Esaltazione dei particolari
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2016 Come rappresento un pixel? Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B:
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 19 febbraio 2013 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
DettagliOperazioni puntuali. Tipi di elaborazioni Operatori puntuali Look Up Table Istogramma
Tipi di elaborazioni Operatori puntuali Look Up Table Istogramma Analisi di Basso Livello In ingresso abbiamo le immagini provenienti dai sensori. In uscita si hanno un insieme di matrici ognuna delle
DettagliFondamenti di Informatica
Strutture dati complesse Esempi di strutture dati complesse analizzate in questa lezione: Fondamenti di Informatica 21. Strutture di dati complesse in C++ Array di puntatori Pila (Stack) Coda (queue) Liste
DettagliGrammatica di base: esempio
Grammatica di base: esempio Esempio di funzione con assegnazione condizionata: Calcoliamo il fattoriale int fac(int ); int main(){ int bb=3; return fac(3); main.cpp int fac( int b){ return (n
DettagliLezione 4. Enea Cippitelli e.cippitelli@univpm.it Samuele Gasparrini s.gasparrini@univpm.it
Corso di Tecnologie per le Telecomunicazioni Utilizzo del sensore Kinect in ambiente Matlab Lezione 4 Enea Cippitelli e.cippitelli@univpm.it Samuele Gasparrini s.gasparrini@univpm.it 1 Outline Skeletal
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 5 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 5 Dott. Michele Zanella Ing. Gian Enrico Conti File I/O I file rappresentano una sequenza di byte, siano essi
DettagliImage Elaboration. Image Processing
Image Elaboration Immagine digitale Un immagine digitale può essere rappresentata come una matrice con un prefissato numero di righe e colonne che ne determinano la risoluzione (campionamento). L'unità
DettagliElaborazione di immagini digitali: trasformare e migliorare
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore
DettagliRappresentazione di immagini
Rappresentazione di immagini Il modo più immediato per rappresentare un'immagine è quello di considerarla suddivisa in un reticolo di punti detti pixel. Maggiore è il numero di pixel per unità di lunghezza
DettagliBoost.MPI Library Algoritmi e Calcolo Parallelo. Daniele Loiacono
Boost.MPI Library Algoritmi e Calcolo Parallelo Riferimenti! Boost homepage http://www.boost.org/! Tutorial on Boost.MPI http://www.boost.org/doc/libs/1_52_0/doc/html/mpi/ tutorial.html! Tutorial on Boost.Serialization
DettagliSegmentazione basata su colore. Annalisa Franco
Segmentazione basata su colore Annalisa Franco annalisa.franco@unibo.it http://bias.csr.unibo.it/vr/ 2 La segmentazione Scopo di questa esercitazione è l implementazione di tecniche di segmentazione basate
DettagliLe classi. Classi derivate
Classi derivate È possibile esprimere proprietà comuni tra le classi? I concetti che sottendono alle definizioni delle classi, sono in relazione tra loro o sono in comune? struct studente { string name;
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
DettagliCapitolo 10 - Strutture
1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la
DettagliFondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati
Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario
DettagliArray. Aggragati di variabili omogenee...
Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno
DettagliConsideriamo un vettore allocato dinamicamente
Libreria per per la la gestione/manipolazione dei dei vettori Consideriamo un vettore allocato dinamicamente int * v; v = (int *) malloc (n * sizeof (int) ); Conversione di tipo da void * a int * Numero
DettagliElementi di grafica raster
Elementi di grafica raster Segnali mono-bidimensionali Segnale: variazione di una grandezza fisica rispetto al tempo e/o allo spazio cioè Valore della grandezza ad ogni istante di tempo (spazio) Un segnale
DettagliLaboratorio di Informatica
Strutture Dati in C++ Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Laboratorio di Informatica 4. Array e strutture in C++ Strutture
DettagliBreve Ripasso del linguaggio C
Breve Ripasso del linguaggio C Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@diism.unisi.it Compilazione, linking, ecc sorgente oggetto librerie sorgente oggetto editor sorgente
DettagliLaboratorio di Algoritmi e Strutture Dati Ingegneria e Scienze Informatiche - Cesena A.A
Ingegneria e Scienze Informatiche - Cesena A.A. 2014-2015 pietro.dilena@unibo.it MergeSort MergeSort MergeSort: esempio MergeSort: pseudocodice Algoritmo di ordinamento ricorsivo basato sulla tecnica Divide
DettagliFondamenti di Informatica II 7. Array e Strutture in C++
Strutture Dati in C++ Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica II 7. Array e Strutture in C++ Strutture
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente
DettagliEsercizio 1. Tavola ordinata in memoria centrale
Esercizio 1. Tavola ordinata in memoria centrale E dato un programma che realizza una rubrica telefonica come tavola in memoria centrale. In particolare, ogni elemento della tavola è caratterizzato dalle
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti Puntatori I puntatori sono delle variabili che contengono l
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione IX Tatiana Zolo zolo@cs.unipr.it 1 TIPI STRINGA Il C++ fornisce due rappresentazioni: stringa di caratteri stile C e la classe stringa introdotta nel C++ standard.
DettagliAlgoritmi e Strutture Dati. Lezione 2
Algoritmi e Strutture Dati Lezione 2 www.iet.unipi.it/a.virdis Antonio Virdis antonio.virdis@unipi.it 1 Sommario Merge Sort Ordinamento STL Gestione Liste Esercizi 2 A metà Size Size/2 Size/2 3 A metà
DettagliLaboratorio di Programmazione e Calcolo
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2018-19 0) Struttura del Corso 1) Trattamento
DettagliPROGRAMMAZIONE AVANZATA JAVA E C. Massimiliano Redolfi. Lezione 7: Code, Stack, Liste PAJC. Ricerca. prof. Massimiliano Redolfi PAJC
PROGRAMMAZIONE AVANZATA JAVA E C Massimiliano Redolfi Lezione 7: Code, Stack, Liste Ricerca 2 Ricerca Se dobbiamo cercare un elemento in un array possiamo trovarci in due situazioni Elementi non ordinati
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliAlgoritmi e Strutture Dati. Lezione 4
Algoritmi e Strutture Dati Lezione www.iet.unipi.it/a.virdis Antonio Virdis a.virdis@iet.unipi.it Sommario Heap Ordinamento tramite Heap Soluzioni Esercizi heap 3 5 6 7 8 0 9 3 5 3 heap 3 5 6 7 8 0 9 heap
DettagliLezione 8: Stringhe ed array multidimensionali
Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si
DettagliEsercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
DettagliBreve Ripasso del linguaggio C
Breve Ripasso del linguaggio C Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@diism.unisi.it Compilazione, linking, ecc sorgente oggetto librerie sorgente oggetto editor sorgente
DettagliLezione 6 Struct e qsort
Lezione 6 Struct e qsort Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Struct Struct Fino ad ora abbiamo utilizzato
DettagliEsercizio 1 (14 punti)
Prova scritta del 22 gennaio 2018 di Fondamenti di Programmazione e Strutture Dati e Algoritmi Per studenti di Ing. Elettronica e Ing. Gestionale immatricolati a partire dall anno 2017-18 DURATA DELLA
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018
Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercizi sull allocazione dinamica della memoria in C Il codice di questi esercizi é contenuto nella cartella parte1 1. Implementare una lista
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliStrutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
DettagliSistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 14 luglio 2017 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
DettagliL4 Tecniche di Background Subtraction. Corso di Visione Artificiale Ing. Luca Mazzei
L4 Tecniche di Background Subtraction Corso di Visione Artificiale Ing. Luca Mazzei AA 2009/2010 Visione Artificiale 2 Background Subtraction Insieme di tecniche per separare in un immagine lo sfondo dagli
DettagliElaborazione di immagini. I filtri Digital Image Processing
Elaborazione di immagini I filtri Digital Image Processing Tre livelli di image processing Basso livello Filtro di smoothing Tre livelli di image processing Medio livello Contrast saliency region detection,
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Immagini Struttura dati: typedef struct{ int R; int G; int B; } pixel pixel img[0][24]; Ma quanto è grossa
DettagliTemplate (1) Molte volte l operato di una funzione o le proprietà di una classe non dipendono dal tipo dei dati coinvolti
Template (1) Molte volte l operato di una funzione o le proprietà di una classe non dipendono dal tipo dei dati coinvolti int sumvector(int *array, int n) { int sum(0); for (int i = 0; i < n; ++i) sum
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
DettagliIl linguaggio C. Istruzioni, funzioni, dati strutturati
Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliI puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
DettagliAllocazione dinamica memoria
Allocazione dinamica memoria Marco Casazza 11/12/2017 1 Esercizio 1 1 /* 2 Creare una lista bidirezionale di interi, ovvero una lista 3 che permette lo scorrimento in entrambe le direzioni ( dal primo
DettagliPuntatori. Grazie ai puntatori:
Puntatori Grazie ai puntatori: 1) è possibile permettere ad una funzione di modificare il contenuto di un area di memoria; 2) invece di passare ad una funzione tutto un blocco di memoria, si passa alla
DettagliIntroduzione a Matlab
Introduzione a Matlab Filtri: Media, Gaussiano, Mediano Fondamenti di Visione Artificiale a.a. 2015/2016 07/04/16 Introduzione a Matlab 1 Definizione di un filtro: Kernel Ciascun filtro è definito dal
DettagliPROVA SCRITTA 23 MARZO 2010
PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa
DettagliLaboratorio di Programmazione e Calcolo
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2018-19 0) Struttura del Corso 1) Trattamento
DettagliLa gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
DettagliCapitolo 11. Puntatori
1 Capitolo 11 Puntatori 2 Variabili puntatore Cerchiamo di capire come le informazioni sono memorizzate nella memoria del computer La memoria è un sequenza di byte Ogni byte è composto da 8 bit: Ogni byte
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliUniversità degli Studi di Napoli Federico II
Università degli Studi di Napoli Federico II UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA Tesi di Laurea in PROGRAMMAZIONE I STANDARD TEMPLATE
DettagliCorso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 3 Novembre 2014
Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli 3 Novembre 2014 1 Programmazione Generica Polimorfismo attraverso l ereditarietà: Attraverso le classi, esiste la possibilità di definire nuovi
DettagliJAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
Dettagli14 APRILE 2015 Selezione territoriale
APRILE 0 Selezione territoriale Testi e soluzioni ufficiali Testi dei problemi William Di Luigi, Gabriele Farina, Luigi Laura, Gemma Martini, Romeo Rizzi, Luca Versari Soluzioni dei problemi William Di
DettagliStandard Template Library
Standard Template Library Serafino Cicerone Dipartimento di Ingegneria Elettrica Università degli Studi dell Aquila I-67040 Monteluco di Roio, L Aquila, Italy cicerone@ing.univaq.it Sommario Il presente
DettagliASD Lab 2. Alessandra Giordani Alessandra Giordani ASD Lab / 28
ASD Lab 2 Alessandra Giordani 10-10-2014 Alessandra Giordani ASD Lab 2 10-10-2014 1 / 28 CALENDARIO 03/10 14:00-16:00 Introduzione 10/10 14:00-15:45 Ad-Hoc 17/10 (Nessuna lezione) 24/10 14:00-16:00 Grafi
DettagliDichiarazioni e tipi predefiniti nel linguaggio C
Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:
DettagliInformatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012
Informatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012 Igor Melatti Cenni sui puntatori in C Per ogni variabile normale dichiarata, il compilatore riserva una precisa quantità di
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliCalcolatori Ele,ronici Lezione 9 5/12/2013
Calcolatori Ele,ronici Lezione 9 5/12/2013 Introduzione al C Emiliano Casalicchio Emiliano.Casalicchio@uniroma2.it Array Puntatori Stringhe Capitolo 6 del Kelley Pohl 3 Array Stru,ura dac contenente N
DettagliUso avanzato dei puntatori Allocazione dinamica della memoria
Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliI puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.
Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
Dettagli