Una Introduzione a OpenCV

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Una Introduzione a OpenCV"

Transcript

1 Una a OpenCV Prof. Michele Scarpiniti Dipartimento di Ingegneria dell Informazione, Elettronica e Telecomunicazioni Sapienza Università di Roma michele.scarpiniti@uniroma1.it Roma, 27 Aprile 2012 M. Scarpiniti Una a OpenCV 1 / 53

2 1 2 Gestione delle matrici L Istogramma M. Scarpiniti Una a OpenCV 2 / 53

3 M. Scarpiniti Una a OpenCV 3 / 53

4 L obiettivo di queste slides è di introdurre ed illustrare il funzionamento di un utile e potente framework per la gestione dei dispositivi video, noto come OpenCV. OpenCV è una libreria open-source, scritta in C, per lo streaming video real-time ovvero la computer vision e gira sotto Windows, Linux e Mac OS X. Maggiori informazioni possono essere reperite al link da cui è anche possibile scaricare l intero codice in C++. M. Scarpiniti Una a OpenCV 4 / 53

5 : la computer vision La computer vision è una trasformazione dei dati provenienti da una fotocamera o videocamera verso una decisione o una loro nuova rappresentazione. Una tale trasformazione può essere effettuata per uno scopo qualsiasi. E anche possibile inserire nei dati, alcune informazioni riguardanti il contesto in cui si opera. M. Scarpiniti Una a OpenCV 5 / 53

6 : storia di OpenCV Il framework OpenCV nasce da una iniziativa dell Intel, mentre lavorava su miglioramenti delle loro CPU per applicazioni intensive, ad esempio ray-tracing in tempo reale e proiezione 3D. Uno degli addetti della Intel, aveva notato che in motle Università, tra cui il MIT Media Lab, avevano messo su un infrastruttura per la computer vision, il cui codice era passato da studente a studente. A tal proposito si decise di iniziare a progettare, a partire da questo codice, un framework per la computer vision per i processori Intel. Il primo avvio di tale progetto, con la collaborazione di un team Intel russo, fu nel La prima release ufficiale di OpenCV risalve, invece, al Nel 2011 è stata rilasciata la versione 2.2.0, che supporta anche Android. Ora è disponibile la release 3.0. M. Scarpiniti Una a OpenCV 6 / 53

7 OpenCV e le IPP Per velocizzare OpenCV è possibile utilizzare la libreria IPP (Intel Performance Primitives). Infatti OpenCV è basato, internamente, su tali librerie in quanto molti programmatori Intel ne fanno un forte uso. Le IPP sono delle librerie altamente ottimizzate, che agiscono direttamente a livello delle micro-istruzioni del processore, evitando qualsiasi perdita di tempo. Se le IPP sono installate, OpenCV le rileverà in automatico e le includerà al momento della compilazione, per ottimizzare al massimo il codice. Così se, ad esempio è richiesto il calcolo di una FFT, verrà utilizzata la funzione definita nelle IPP anzichè quella nativa di OpenCV. Per verificare se le IPP sono installate e determinare la release di OpenCV in uso, si può utilizzare il seguente codice char* libraries; char* modules; cvgetmoduleinfo(0, &libraries, &modules); printf( Libraries: %s/nmodules: %s/n, libraries, modules); M. Scarpiniti Una a OpenCV 7 / 53

8 Installare OpenCV Dopo aver scaricato e configurato (ad esempio attraverso l utilizzo del software CMake ( OpenCV è possibile aprire con Microsoft Visual C++ il relativo file di soluzione e compilare il tutto. Il risultato della compilazione è una serie di librerie, che dovranno essere incluse nel codice che verrà scritto. Le relative librerie dinamiche *.dll, andranno distribuite insieme al programma compilato. Nella cartella bin verranno compilati, inoltre, i numerosi esempi inclusi nel framework, attraverso i quali è possibile scrivere facilmente un elevato numero di applicazioni. Nella cartella docs è invece possibile consultare un abbondante documentazione in formato html oppure in formato pdf. E anche reperibile una documentazione Wiki, all indirizzo M. Scarpiniti Una a OpenCV 8 / 53

9 Struttura di OpenCV La struttura di OpenCV consta delle seguenti 6 parti: 1 CXCORE: contiene la definizione di tutte le strutture dati e le funzioni per gestire immagini e video. 2 CV: contiene tutte le funzioni per il processamento e l analisi delle immagini, la calibrazione e il tracking. 3 ML (Machine Learning): contiene molte funzioni sul Machine Learning e il pattern recognition, quali il clustering e la classificazione. 4 HighGUI: contiene le definizioni delle interfacce utenti (GUI). 5 CVCAM: contiene le interfacce per le webcam. 6 CVAUX: contiene algoritmi sperimentali per scopi diversi, ad esempio: segmentazione, sottrazione del background, modelli HMM, ecc. M. Scarpiniti Una a OpenCV 9 / 53

10 Struttura di OpenCV La struttura di OpenCV precedente può essere riassunta nella schematizzazione seguente. CV MLL HighGUI CXCORE CVCAM CVAUX M. Scarpiniti Una a OpenCV 10 / 53

11 Aprire una foto con OpenCV Per aprire una foto, è possibile utilizzare il seguente codice: #include highgui.h int main(int argc, char** argv) { IplImage* img = cvloadimage(argv[1]); cvnamedwindow( Esempio1, CV_WINDOW_AUTOSIZE); cvshowimage( Esempio1, img); cvwaitkey(0); cvreleaseimage(&img); cvdestroywindow( Esempio1 ); } Tutte le funzioni utilizzate in questo script, sono definite nel file di header highgui.h. M. Scarpiniti Una a OpenCV 11 / 53

12 Aprire una foto con OpenCV La funzione chiave del precedente script è IplImage* img = cvloadimage( nome ); che legge una stringa e carica in una matrice img, di tipo IplImage, tutti i pixel dell immagine. Tale funzione determina in automatico il tipo di file e alloca la memoria necessaria per contenere l immagine (numero di righe, di colonne e di colori). I formati supportati sono: BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS e TIFF. Tale funzione restituisce il puntatore alla struttura allocata, che contiene, oltre ai dati, anche le informazioni relative dell immagine. M. Scarpiniti Una a OpenCV 12 / 53

13 Aprire una foto con OpenCV Per visualizzare la foto è necessario creare una finestra in cui collocarla. A tal proposito, si utilizza la funzione cvnamedwindow( Esempio1, CV_WINDOW_AUTOSIZE); che crea la finestra e la nomina come Esempio1. Il secondo argomento (CV WINDOW AUTOSIZE) determina le dimensioni della figura. In questo caso, la finestra sarà adattata alle dimensioni dell immagini. Al contrario è possibile inserire il valore 0: in questo caso la finestra ha una dimensione standard e l immagine sarà scalata alle dimensioni della finestra. Per visualizzara l immagine img nella finestra Esempio1, si utilizza quindi, la funzione cvshowimage( Esempio1, img); Ovviamente la finestra Esempio1 deve essere create precedentemente la chiamata di cvshowimage(). M. Scarpiniti Una a OpenCV 13 / 53

14 Aprire una foto con OpenCV Per mettere in attesa il programma fino a che non si prema un tasto, si utilizza il comando cvwaitkey(0); L argomento 0 (o un numero negativo) significa che si aspetta la pressione di un tasto. Al contrario, se si inserisce un numero positivo, il programma apsetta, in millisecondi, il tempo indicato. Quando viene premuto il tasto, bisogna rilasciare la memoria occupata e porre il puntatore all immagine img a NULL. Queste operazioni sono eseguite dal comando cvreleaseimage(&img); Infine bisogna distruggere la finestra creata, e deallocare la memoria eventualmente occupata, utilizzando cvdestroywindow( Esempio1 ); M. Scarpiniti Una a OpenCV 14 / 53

15 Creare e salvare una foto con OpenCV Per creare uno spazio di memoria che contenga un immagine, è possibile utilizzare il comando seguente: IplImage* image = cvcreateimage(cvsize size, int depth, int channels ); Viene restituito un puntatore ad una strutture di tipo IplImage. Viene richiesto, al contrario, la dimensione dell immagine in size (come larghezza - altezza), in numero di bit (in depth) e il numero di canali per pixel in channels (1, 2, 3, o 4). Per salvare un immagine, si utilizza invece int cvsaveimage(char* filename, CvArr* image); che prende in ingresso il nome del file e il puntatore all immagine da salvare. Restituisce 1 se il salvataggio è andato a buon fine, 0 altrimenti. M. Scarpiniti Una a OpenCV 15 / 53

16 Aprire un video con OpenCV Per aprire un video, è possibile utilizzare il seguente codice: #include highgui.h int main(int argc, char** argv) { cvnamedwindow( Esempio2, CV_WINDOW_AUTOSIZE); CvCapture* capture = cvcreatefilecapture(argv[1]); IplImage* frame; while(1) { frame = cvqueryframe(capture); if (!frame) break; cvshowimage( Esempio2, frame); char c = cvwaitkey(33); if (c == 27) break; } cvreleasecapture(&capture); cvdestroywindow( Esempio2 ); } M. Scarpiniti Una a OpenCV 16 / 53

17 Aprire un video con OpenCV Anche qui si crea un finestra attraverso la funzione cvnamedwindow(). La funzione principale, quella che carica il file video, è la seguente CvCapture* capture = cvcreatefilecapture( nome_video ); Tale funzione carica un file video di tipo AVI e restituisce un puntatore capture a idonea struttura CvCapture. Tale puntatore è quindi passato alla funzione frame = cvqueryframe(capture); che restituisce il frame corrente del video in un immagine, descritta dal puntatore frame alla struttura IplImage. Tale frame è quindi visualizzato come immagine cvshowimage( Esempio2, frame); M. Scarpiniti Una a OpenCV 17 / 53

18 Aprire un video con OpenCV Ogni 33 ms (cvwaitkey(33)) viene letto un nuovo frame e visualizzato, ripetendo all infinito il ciclo while(1) char c = cvwait(33); Si esce dal ciclo quando viene letto il carattere con codice ASCII pari a 27, ovvero il tasto Esc. Viene quindi rilasciata la memoria attraverso il comando cvreleasecapture(&capture); e infine distrutta la finestra con cvdestroywindow( Esempio2 ); M. Scarpiniti Una a OpenCV 18 / 53

19 Leggere da WebCam con OpenCV Vediamo il codice per ottenere le immagini da una webcam. #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { cvnamedwindow( "Esempio3", CV_WINDOW_AUTOSIZE ); CvCapture* capture; if (argc==1) { capture = cvcreatecameracapture( 0 ); } else { capture = cvcreatefilecapture( argv[1] ); } assert( capture!= NULL ); IplImage* frame; M. Scarpiniti Una a OpenCV 19 / 53

20 Leggere da WebCam con OpenCV } while(1) { frame = cvqueryframe(capture); if(!frame ) break; cvshowimage( Esempio3, frame); char c = cvwaitkey(10); if( c == 27 ) break; } cvreleasecapture(&capture); cvdestroywindow( Esempio3 ); Dopo aver al solito creato una finestra con cvnamedwindow(), si crea un puntatore capture alla struttura dati CvCapture. Il video da webcam viene creato attraverso la funzione capture = cvcreatecameracapture( 0 ); M. Scarpiniti Una a OpenCV 20 / 53

21 Leggere da WebCam con OpenCV Se, al contrario, al programma precedente passo il nome di un file, viene letto il video con quel nome. Il resto del programma è identico al caso del filmato. Ogni 10 ms (cvwaitkey(10)) viene letto un frame dal puntatore capture, con frame = cvqueryframe(capture); e quindi mostrato nella finestra cvshowimage( "Esempio3", frame ); Infine, quando viene premuto il tasto Esc (codice ASCII 27), viene rilasciata la memoria (cvreleasecapture(&capture)) e distrutta la finestra (cvdestroywindow( Esempio3 )). M. Scarpiniti Una a OpenCV 21 / 53

22 Scrivere un file video con OpenCV Nella presente slide, si cercherà di descrivere un codice per la scrittura su file AVI. #include "cv.h" #include "highgui.h" #include <stdio.h> int main( int argc, char* argv[] ) { cvnamedwindow( Esempio4, CV_WINDOW_AUTOSIZE); cvnamedwindow( Log_Polar, CV_WINDOW_AUTOSIZE); CvCapture* capture = cvcreatefilecapture( argv[1] ); if (!capture){ return -1; } IplImage* bgr_frame = cvqueryframe(capture); double fps = cvgetcaptureproperty(capture, CV_CAP_PROP_FPS); CvSize size = cvsize( (int)cvgetcaptureproperty( capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvgetcaptureproperty( capture, CV_CAP_PROP_FRAME_HEIGHT) ); M. Scarpiniti Una a OpenCV 22 / 53

23 Scrivere un file video con OpenCV CvVideoWriter* writer = cvcreatevideowriter( argv[2], CV_FOURCC( D, X, V, 0 ), fps, size ); IplImage* logpolar_frame = cvcreateimage( size, IPL_DEPTH_8U, 3 ); while( (bgr_frame = cvqueryframe(capture))!= NULL ) { cvshowimage( Esempio4, bgr_frame ); cvlogpolar( bgr_frame, logpolar_frame, cvpoint2d32f(bgr_frame->width/2, bgr_frame->height/2), 40, CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS ); cvshowimage( Log_Polar, logpolar_frame ); M. Scarpiniti Una a OpenCV 23 / 53

24 Scrivere un file video con OpenCV cvwritetoavi( writer, logpolar_frame ); char c = cvwaitkey(10); if( c == 27 ) break; } cvreleasevideowriter( &writer ); cvreleaseimage( &bgr_frame ); cvreleaseimage( &logpolar_frame ); cvreleasecapture( &capture ); cvdestroywindow( Esempio4 ); cvdestroywindow( Log_Polar ); Il codice precedente carica e visualizza (nella finestra Esempio4 ) un video letto da file AVI. Contemporaneamente questo video verrà convertito in un formato logaritmico-polare, visualizzato nella finestra Log Polar e scritto su file, sempre di tipo AVI. M. Scarpiniti Una a OpenCV 24 / 53

25 Scrivere un file video con OpenCV La funzione chiave del programma precedente è la seguente CvVideoWriter* writer = cvcreatevideowriter( argv[2], CV_FOURCC( D, X, V, 0 ), fps, size ); che restituisce un puntatore writer alla struttura CvVideoWriter. Tale funzione accetta 4 parametri in ingresso: 1 il nome del file da scrivere (letto da linea di comando) argv[2]; 2 il codec video con cui sarà compresso lo stream CV FOURCC(); 3 il numero di frames per secondo fps; 4 la dimensionalità delle immagini (3 = a colori) size. M. Scarpiniti Una a OpenCV 25 / 53

26 Scrivere un file video con OpenCV: i codec OpenCV supporta i seguenti tipi di codec video: Codici Descrizione CV FOURCC( P, I, M, 1 ) CV FOURCC( M, J, P, G ) CV FOURCC( M, P, 4, 2 ) CV FOURCC( D, I, V, 3 ) CV FOURCC( D, I, V, X ) CV FOURCC( D, X, V, 0 ) CV FOURCC( X, V, I, D ) CV FOURCC( U, 2, 6, 3 ) CV FOURCC( I, 2, 6, 3 ) CV FOURCC( H, 2, 6, 4 ) CV FOURCC( F, L, V, 1 ) MPEG-1 codec motion-jpeg codec MPEG-4.2 codec MPEG-4.3 codec MPEG-4 codec (Dvix) DVix vers 5 codec Xvid codec H263 codec H263I codec H264 codec FLV1 codec M. Scarpiniti Una a OpenCV 26 / 53

27 Scrivere un file video con OpenCV La trasformazione logaritmico-polare dell immagine avviene attraverso il comando: cvlogpolar( bgr_frame, logpolar_frame, cvpoint2d32f(bgr_frame->width/2, bgr_frame->height/2), 40, CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS ); I primi due argomenti (bgr frame e logpolar frame) sono le immagini di origine e destinazione della trasformazione logaritmico-polare, descritta dalle seguenti trasformazioni: (x, y) (log r, θ), in cui r = (x x c ) 2 + (y y c ) 2 e θ = arctan y yc x x c e (x c, y c ) è il punto centrale dell immagine di partenza. Le coordinate di tale punto vengono passate alla precedente funzione come terzo parametro. Il quarto parametro è un fattore di scala che seleziona la regione di interesse nella visualizzazione del nuovo dominio. Infine il quinto parametro seleziona il metodi di interpolazione utilizzato. M. Scarpiniti Una a OpenCV 27 / 53

28 Scrivere un file video con OpenCV A questo punto il frame appena trasformato viene salvato nella struttura puntata da writer, attraverso cvwritetoavi( writer, logpolar_frame ); Dopo la scrittura di tutti i frame, viene distrutto il puntatore alla struttura video, tramite cvreleasevideowriter(&writer); Infine viene rilasciata la memoria e distrutte le finestre: cvreleaseimage( &bgr_frame ); cvreleaseimage( &logpolar_frame ); cvreleasecapture( &capture ); cvdestroywindow( Esempio4 ); cvdestroywindow( Log_Polar ); M. Scarpiniti Una a OpenCV 28 / 53

29 Gestione delle matrici L Istogramma M. Scarpiniti Una a OpenCV 29 / 53

30 I tipi elementari Gestione delle matrici L Istogramma OpenCV utilizza le matrici per memorizzare immagini e frame. All interno di tali strutture troviamo i tipi elementari di punto, dimensione, rettangolo, che vengono definiti come descritto nella seguente tabella. Struttura Contenuto Descrizione CvPoint int x, y Punto in un immagine CvPoint2D32f float x, y Punto in R 2 CvPoint3D32f flaot x, y, z Punto in R 3 CvSize int width, height Dimensioni di un immagine CvRect int x, y, width, height Porzione di un immagine CvScalar double val[4] Valore RGBA Così se si vuole disegnare un rettangolo (cvrectangle()) nell immagine puntata da myimg, utilizzero la chiamata cvrectangle( myimg, cvpoint(5,10), cvpoint(20,30), cvscalar(255,255,255) ); M. Scarpiniti Una a OpenCV 30 / 53

31 La struttura CvMat Gestione delle matrici L Istogramma La struttura fondamentale è la CvMat, che può essere definita come typedef struct CvMat { int type; int step; int* refcount; // per uso interno union { uchar* ptr; short* s; int* i; float* fl; double* db; } data; union { int rows; int height; }; union { int cols; int width; }; } CvMat; M. Scarpiniti Una a OpenCV 31 / 53

32 La struttura CvMat Gestione delle matrici L Istogramma Per creare un elemento di tipo CvMat è possibile eseguire il comando: cvmat* cvcreatemat(int rows, int cols, int type); E comunque possibile creare solamente l header o i dati di una struttura CvMat: cvcreatematheader(int rows, int cols, int type); cvcreatedata(int rows, int cols, int type); o clonare una matrice mat2 = cvclonemat(cvmat* mat1); Infine, per deallocare la memoria, si utilizza cvreleasemat(cvmat** mat); M. Scarpiniti Una a OpenCV 32 / 53

33 La struttura IplImage Gestione delle matrici L Istogramma La struttura dati fondamentale per gestire le immagini è la IplImage, definita come segue: typedef struct _IplImage { int nsize; int ID; int nchannels; int alphachannel; int depth; char colormodel[4]; char channelseq[4]; int dataorder; int origin; int align; int width; int height; struct _IplROI* roi; struct _IplImage* maskroi; void* imageid; struct _IplTileInfo* tileinfo; int imagesize; char* imagedata; int widthstep; int BorderMode[4]; int BorderConst[4]; char* imagedataorigin; } IplImage; M. Scarpiniti Una a OpenCV 33 / 53

34 La struttura IplImage Gestione delle matrici L Istogramma Il valore del numero di bit, descritti dalla variabile depth, può assumere una delle seguenti alternative Macro Tipo di pixel IPL DEPTH 8U IPL DEPTH 8S IPL DEPTH 16S IPL DEPTH 32S IPL DEPTH 32F IPL DEPTH 64F intero unsigned a 8 bit intero signed a 8 bit intero signed a 16 bit intero signed a 32 bit float singola precisione a 32 bit float doppia precisione a 64 bit M. Scarpiniti Una a OpenCV 34 / 53

35 Operazioni sulle immagini Gestione delle matrici L Istogramma Sulle immagini, che sono rappresentate da matrici in OpenCV è possibile utilizzare un insieme di oltre cento funzioni predefinite, che permettono di sommare, sottrare, ruotare, determinare quantità statistiche, norme, ecc. L utilizzo di tali funzioni è abbastanza immediato. Per maggiori informazioni a riguardo, si rimanda alla guida di OpenCV, nonché a [1] e [2]. Vengono poi messe a disposizione alcune funzioni per disegnare figure più o meno elementari su una determinata finestra contenete un immagine. Ad esempio: linee, cerchi, ellissi, poligoni e testo. Anche queste funzioni sono di utilizzo abbastanza immediato. Nel seguito vedremo alcune funzioni molto utili nelle applicazioni. M. Scarpiniti Una a OpenCV 35 / 53

36 Operazioni sulle immagini: il resize Gestione delle matrici L Istogramma E possibile operare un operazione di resize su una determinata immagine, attraverso la funzione void cvresize( const CvArr* src, cvarr* dst, int interpolation = CV_INTER_LINEAR ); Nella precedente funzione src è l immagine originaria mentre dst è la nuova struttura di dimensioni opportune che conterrà l immagine con le nuove dimensioni. Poichè i pixel dell immagine originale dovranno essere interpolati, è possibile stabilire il metodo di interpolazione attraverso il terzo parametro interpolation, le cui opzioni sono descritte nella seguente tabella: Interpolazione Metodo Descrizione CV INTER NN Pixel più vicino Il nuovo pixel assume il valore del pixel più vici CV INTER LINEAR Bilineare Interpolazione bilineare CV INTER AREA Media su un area Il pixel è sostituito con la media dell area coper CV INTER CUBIC Bicubica Interpolazione bicubica M. Scarpiniti Una a OpenCV 36 / 53

37 Gestione delle matrici L Istogramma Operazioni sulle immagini: la convoluzione Essenziale per il filtraggio di immagini è l operazione di convoluzione bidimensionale, ottenuta attraverso la funzione void cvfilter2d( const CvArr* src, cvarr* dst, const CvMat* kernel, cvpoint anchor = cvpoint(-1,-1) ); Nella precedente funzione src è l immagine originaria mentre dst è la nuova struttura di dimensioni opportune che conterrà l immagine filtrata. kernal è una matrice contenente la risposta impulsiva del filtro. Il quarto parametro, anchor, è opzionale è indica il punto in cui centrare il filtro bidimensionale. L opzione di default è il centro della matrice kernel. M. Scarpiniti Una a OpenCV 37 / 53

38 Operazioni sulle immagini: la DFT E possibile valuare la DFT bidimensionale I (k x, k y ) = attraverso la funzione N x 1 N y 1 n x =0 n y =0 I (n x, n y ) exp void cvdft( const CvArr* src, cvarr* dst, int flags int nonzero_rows = 0 ); Gestione delle matrici L Istogramma ( 2πj ) ( k xn x exp 2πj ) k y n y, N x N y Nella precedente funzione src è l immagine originaria mentre dst è la nuova struttura di dimensioni opportune che conterrà l immagine in frequenza. flags è un parametro che seleziona la trasformata diretta (CV DXT FORWARD) e inversa (CV DXT INVERSE). L ultimo parametro, nonzero rows, serve per gestire lo zero padding. Utilizzando la precedente funzione è possibile implementare la convoluzione tra due immagine come prodotto delle relative DFT. M. Scarpiniti Una a OpenCV 38 / 53

39 L istogramma di un immagine Gestione delle matrici L Istogramma Poiché moltissimi algoritmi di image processing si basano sul concetto di istogramma, diviene essenziale saper lavorare con questi ultimi in OpenCV. La struttura che contiene l istogramma è definita come segue typedef struct CvHistogram { int type; CvArr* bins; float thresh[cv_max_dim][2]; // for uniform histograms float** thresh2; // for nonuniform histograms CvMatND mat; // embedded matrix for array hist } CvHistogram; Nella precedente struttura, type indica il tipo di istogramma, ovvero se mono-dimensionale o multi-dimensionale; bins contiene i bin dell istogramma. Le matrici thresh e thresh2 sono le soglie utilizzate per creare l istogramma, nel caso uniforme e non uniforme, rispettivamente. Infine, mat contiene i valori dell istogramma. M. Scarpiniti Una a OpenCV 39 / 53

40 L istogramma di un immagine Gestione delle matrici L Istogramma Dopo aver definita la struttura CvHistogram è possibile creare un istogramma attraverso CvHistogram* cvcreatehist( int dims, int* sizes, int type, float** ranges = NULL, int uniform = 1 ); Nella precedente funzione, dims indica il numero di dimensioni dell istogramma. sizes è un vettore di interi lungo quanto il numero di dimensioni, che indicano il numero di bin da assegnare a ciascuna dimensione. type indica il tipo di istogramma, ovvero se multidimensionale (CV HIST ARRAY) o di tipo sparso (CV HIST SPARSE). La variabile ranges denota i limiti dell istogramma, mentre la variabile booleana uniform indica se stiamo utilizzando un istogramma uniforme (valore positivo) oppure no (valore 0). M. Scarpiniti Una a OpenCV 40 / 53

41 Manipolare un istogramma Gestione delle matrici L Istogramma Esistono alcune utili funzioni che consentono di manipolare un istogramma, precedentemente creato. Precisamente cvnormalizehist( CvHistogram* hist, double factor ); che consente di normalizzare un istogramma di un fattore factor; cvthreshhist( CvHistogram* hist, double thresh ); che consente di applicare una soglia thresh; void cvcopyhist( const CvHistogram* src, CvHistogram** dst ); permette di copiare un istogramma contenuto in src nella nuova variabile dst. void cvgetminmaxhistvalue( const CvHistogram* hist, float* min_value, float* max_value, int* min_idx = NULL, int* max_idx = NULL ); consente di ottenere il valore minimo min value e il valore massimo max value di un istogramma hist. Le variabili min idx e max idx servono nel caso di istogrammi multi-dimensionali. M. Scarpiniti Una a OpenCV 41 / 53

42 Manipolare un istogramma Gestione delle matrici L Istogramma E ancora: void cvcalchist( IplImage** image, CvHistogram* hist, int accumulate = 0, const CvArr* mask = NULL ); consente di calcolare automaticamente l istogramma hist di una immagine image. Il parametro accumulate, se non zero, consente di mantenere in memoria l istogramma. mask consente di escludere alcuni pixel dal calcolo dell istogramma. void cvequalizehist( const CvArr* src, CvArr* dst ); consente di equalizzare un immagine miglirandone il contrasto, in modo tale che l immagine risultante dst abbia un istogramma più piatto dell immagine di partenza src. M. Scarpiniti Una a OpenCV 42 / 53

43 Manipolare un istogramma Gestione delle matrici L Istogramma Infine, è fondamentale la seguente funzione void cvcomparehist( const CvHistogram* hist1, const CvHistogram* hist2, int method ); che consente di paragonare due istogrammi. La variabile method descrive la particolare distanza utilizzata per paragonare i due istogrammi. I possibili valori sono riassunti nella seguente tabella Metodo Descrizione Espressione CV COMP CORREL Correlazione d corr (H 1, H 2 ) = i (H 1(i) m H1 )(H 2 (i) m H2 ) i (H 1(i) m H1 ) 2 (H 2 (i) m H2 ) 2 (H 1 (i) H 2 (i)) 2 H 1 (i)+h 2 (i) CV COMP CHISQR Chi-Quadro d chi (H 1, H 2 ) = i CV COMP INTERSECT Intersezione d int (H 1, H 2 ) = i min (H 1(i), H 2 (i)) CV COMP BHATTACHARYYA Battacharria d Bhatt (H 1, H 2 ) = 1 i H1 (i)h 2 (i) i H 1(i) i H 2(i) M. Scarpiniti Una a OpenCV 43 / 53

44 Back Projection Gestione delle matrici L Istogramma Con Back Projection si intende una tecnica con la quale si cerca di capire quanto alcuni pixel di un immagine o alcune aree di un immagine abbiano un istogramma simile ad un istogramma di riferimento. Il primo scopo è raggiunto attraverso la funzione void cvcalcbackproject( IplImage** image, CvArr* back_project, const CvHistogram* hist ); in cui image è l immagine da analizzare, back project contiene i valori dell istogramma dell immagine image e hist contiene l istogramma di riferimento. M. Scarpiniti Una a OpenCV 44 / 53

45 Back Projection Gestione delle matrici L Istogramma Nel secondo caso, siamo interessati ad una regione di pixel, che magari appartengono ad un oggetto noto. Infatti, applicando una finestra mobile ad una data immagine, è possibile determinare in quali posizione l istogramma della finestra è simile a quello di riferimento: in questi casi, infatti, è altamente possibile che la regione di analisi appartiene all oggetto cercato. Tale funzione è definita come segue: void cvcalcbackprojectpatch( IplImage** image, CvArr* dst, CvSize patch_size, CvHistogram* hist, int method, float factor ); in cui image è l immagine da analizzare, dst conterrà l istogramma valutato, patch size è l ampiezza della finestra mobile, hist è l istogramma di riferimento, method è il metodo con cui è valutata la distanza tra i due istogramma e, infine, factor è il fattore di normalizzazione. M. Scarpiniti Una a OpenCV 45 / 53

46 Template Matching Gestione delle matrici L Istogramma Una tecnica simile alla Back Projection, ma non basata sull istogramma, è il Template Matching. Essa è basata sul far scorrere una piccola immagine target su un altra immagine da analizzare, al fine di capire se il target sia contenuta o meno nell immagine data. La funzione che implementa tale operazione è void cvmatchtemplate( const CvArr* image, const CvArr* templ, CvArr* result, int method ); in cui image è l immagine da analizzare, templ è l immagine target, result è l immagine risultato e method rappresenta l algoritmo di calcolo dell immagine risultante, elencato nella seguente tabella (con relativa versione normalizzata). Metodo Descrizione Metodo Normalizzato CV TM SQDIFF Metodo della differenza quadratica CV TM SQDIFF NORMED CV TM CCORR Metodo della correlazione CV TM CCORR NORMED CV TM CCOEFF Metodo del coefficiente di correlazione CV TM CCOEFF NORMED M. Scarpiniti Una a OpenCV 46 / 53

47 La calibrazione Gestione delle matrici L Istogramma Un passo fondamentale affinchè il tutto funzioni correttamente, nel caso di utilizzo una web-camera, è la procedura di calibrazione. In pratica la calibrazione è effettuata identificando prima i bordi di una scacchiera che viene mostrata alla camera e quindi invocando una funzione per la calibrazione. M. Scarpiniti Una a OpenCV 47 / 53

48 La calibrazione Gestione delle matrici L Istogramma Le due funzioni precedenti sono, rispettivamente: int cvfindchessboardcorners( const void* image, CvSize pattern_size, CvPoint2D32f* corners, int* corner_count = NULL, int flags = CV_CALIB_CB_ADAPTIVE_THRESH ); void cvcalibrationcamera2( CvMat* object_points, CvMat* image_points, int* point_counts, CvSize image_size, CvMat* intrinsic_matrix, CvMat* distorsion_coeffs, CvMat* rotation_vectors = NULL, CvMat* translation_vectors = NULL, int flags = 0 ); Si rimanda a [1] per il significato di tutti i parametri. M. Scarpiniti Una a OpenCV 48 / 53

49 Il Machine Learning Gestione delle matrici L Istogramma OpenCV mette a disposizione una libreria per il Machine Learning, in cui sono contenuti molti algoritmi utili nelle applicazioni. Di seguito sono elencati gli algoritmi messi a disposizione: Mahalanobis; K-means; Bayes Classifier; Binary decision trees; Boosting; Random trees; Haar Classifier; Face detector; Expectation Maximization (EM); K-nearest neighbors; Multilayer Perceptron (MLP); Support Vector Machines (SVM). Di seguito esamineremo in dettaglio un paio di algoritmi significativi. M. Scarpiniti Una a OpenCV 49 / 53

50 Il K-means Gestione delle matrici L Istogramma L algoritmo K-means si applica attraverso la seguente funzione void cvkmeans2( const CvArr* samples, int cluster_count, CvArr* labels, CvTermCriteria termcrit ); in cui samples è un array multidimensionale su cui applicare il K-means, cluster count è il numero di cluster, labels è un array contenete l indice del cluster relativo e termcrit è il criterio di stop utilizzato. M. Scarpiniti Una a OpenCV 50 / 53

51 Il Face Detector Gestione delle matrici L Istogramma OpenCV mette a disposizione un potente algoritmo di face detection, basato su un classificatore di Haar e proposto da Viola & Jones. Tutte le caratteristiche sono state precedentemente apprese e salvatein un file distribuito con OpenCV. La funzione per invocare il face detector è la seguente CvSeq* cvhaardetectobjects( const CvArr* image, CvHaarClassifierCascade* cascade, CvMemstorage* storage, double scale_factor = 1.1, int min_neighbors = 3, int flags = 0, CvSize min_size = cvsize(0,0) ); in cui image è l immagine a scala di grigi i cui cercare le facce, cascade contiene le caratteristiche del classificatore, storage è un buffur utilizzato dall algoritmo, scale factor è un fattore di scale che indica quanto elevato è il salto tra una scala e la successiva, min neighbors indica il numero di detection contemporanee affinché venga stabilito che effettivamente ci sia una faccia. flags permette di eliminare alcune ragioni dell immagine dalla ricerca e, infine, min size indica la dimensione più piccola in cui effettuare la ricerca. M. Scarpiniti Una a OpenCV 51 / 53

52 Il Face Detector Gestione delle matrici L Istogramma A questo punto è possibile disegnare un rettangolo o un cerchio intorno alla faccia o alle faccie individuate dalla funzione cvhaardetectobjects(), per avere una rappresentazione grafica intuitiva del numero effettivo di faccie individuate. M. Scarpiniti Una a OpenCV 52 / 53

53 Bibliografia Gestione delle matrici L Istogramma G. Bradski, A. Kaehler. Learnin OpenCV: Computer Vision with the OpenCV Library. O Reilly, R. Laganière. OpenCV 2 Computer Vision - Application Programming Cookbook. PACKT Publishing,2011. H. Schildt. La Guida completa C. McGraw Hill, P. Viola and M. J. Jones. Rapid Object Detecting Using a Boosted cascade of Simple Features. IEEE CVPR, P. Viola and M. J. Jones. Robust Real-time Face Detection. International journal of Computer Vision, Vol. 57, pp , M. Scarpiniti Una a OpenCV 53 / 53

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14 Cantarella Danilo Introduzione OpenCV (Open Source Computer Vision Library) è una libreria disponibile per

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

RICONOSCIMENTO DI TARGHE AUTOMOBILISTICHE

RICONOSCIMENTO DI TARGHE AUTOMOBILISTICHE PROGETTO DEL CORSO DI VISIONE E PERCEZIONE PARTE 2 RICONOSCIMENTO DI TARGHE AUTOMOBILISTICHE Scopo del progetto Il progetto ha come obiettivo quello di riconoscere il testo di una targa automobilistica

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente Istruzioni per l uso della Guida Istruzioni per l uso della Guida Sulla barra degli strumenti: Pagina precedente / Pagina successiva Passa alla pagina Indice / Passa alla pagina Precauzioni Stampa Ottimizzate

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli) Sommario Esercitazione 05 Angelo Di Iorio (Paolo Marinelli)! Packet Filtering ICMP! Descrizione esercitazione! Applicazioni utili: " Firewall: wipfw - netfilter " Packet sniffer: wireshark!"#!$#!%&'$(%)*+,')#$-!"#!$#!%&'$(%)*+,')#$-

Dettagli

Guida Software GestioneSpiaggia.it

Guida Software GestioneSpiaggia.it Caratteristiche Guida Software GestioneSpiaggia.it 1. Gestione prenotazioni articoli (ombrellone, cabina, ecc ) ed attrezzature (sdraio, lettino ecc ) 2. Visualizzazione grafica degli affitti sia giornaliera

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Funzioni. Il modello console. Interfaccia in modalità console

Funzioni. Il modello console. Interfaccia in modalità console Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi

Dettagli

Esercizio 1. Esercizio 1

Esercizio 1. Esercizio 1 Esercizio 1 Un registratore di cassa registra su di un file binario alcuni dati relativi agli scontrini emessi. In particolare, tramite una struttura dati di nome scontrino, il registratore di cassa tiene

Dettagli

Informatica grafica e Multimedialità. 4 Immagini grafiche

Informatica grafica e Multimedialità. 4 Immagini grafiche Immagini raster e vettoriali Le immagini grafiche si distinguono in due classi differenti: immagini raster e immagini vettoriali. Le immagini raster, dette anche pittoriche o pixel-oriented, dividono l

Dettagli

View Mobile User s Guide

View Mobile User s Guide View Mobile User s Guide 1 - Descrizione del software Il software è stato realizzato per essere utilizzato su telefoni cellulari con supporto per le applicazioni Java. Tramite il software è possibile collegarsi

Dettagli

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Windows. Cos è I componenti principali Le funzioni essenziali. www.vincenzocalabro.it 1

Windows. Cos è I componenti principali Le funzioni essenziali. www.vincenzocalabro.it 1 Windows Cos è I componenti principali Le funzioni essenziali www.vincenzocalabro.it 1 Cos è Windows è un sistema operativo, ovvero un insieme di software che consente di eseguire le operazioni basilari

Dettagli

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO... MANCA COPERTINA INDICE IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO... 12 I marchi registrati sono proprietà dei rispettivi detentori. Bologna

Dettagli

FrerEnergy: PROGRAMMA PER LA SUPERVISIONE DEI CONSUMI DI ENERGIA ELETTRICA

FrerEnergy: PROGRAMMA PER LA SUPERVISIONE DEI CONSUMI DI ENERGIA ELETTRICA FrerEnergy: PROGRAMMA PER LA SUPERVISIONE DEI CONSUMI DI ENERGIA ELETTRICA Descrizione Generale E un programma di supervisione in grado di comunicare, visualizzare, memorizzare e stampare i consumi dell

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

Fogli Elettronici: MS Excel

Fogli Elettronici: MS Excel Fogli Elettronici: MS Excel Informatica - A.A. 2010/2011 - Excel 7.0 Foglio Elettronico Un foglio elettronico (o spreadsheet) è un software applicativo nato dall esigenza di: organizzare insiemi di dati

Dettagli

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1 Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6

Dettagli

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE Il software ideale per la gestione delle prenotazioni GUIDA UTENTE Presentazione... 2 Installazione... 3 Prima esecuzione... 6 Registrazione del programma... 8 Inserimento Immobile... 9 Inserimento proprietario...

Dettagli

INTRODUZIONE A EXCEL ESERCITAZIONE I

INTRODUZIONE A EXCEL ESERCITAZIONE I 1 INTRODUZIONE A EXCEL ESERCITAZIONE I Corso di Idrologia e Infrastrutture Idrauliche Prof. Roberto Guercio Cos è Excel 2 Foglio di calcolo o foglio elettronico è formato da: righe e colonne visualizzate

Dettagli

PowerPoint 2007 Le funzioni

PowerPoint 2007 Le funzioni PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

Dettagli

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari RIFERIMENTI Università di L Aquila Facoltà di Biotecnologie Agro-alimentari Esame di Laboratorio di informatica e statistica Parte 3 (versione 1.0) Il riferimento permette di identificare univocamente

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

Dettagli

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15 WG TRANSLATE Pagina 1 di 15 Sommario WG TRANSLATE... 1 1.1 INTRODUZIONE... 3 1 TRADUZIONE DISPLAY FILE... 3 1.1 Traduzione singolo display file... 4 1.2 Traduzione stringhe da display file... 5 1.3 Traduzione

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005 Appunti sugli Elaboratori di Testo D. Gubiani Università degli Studi G.D Annunzio di Chieti-Pescara 19 Luglio 2005 1 Cos è un elaboratore di testo? 2 3 Cos è un elaboratore di testo? Cos è un elaboratore

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Capitolo 3 Guida operativa del programma TQ Sistema

Capitolo 3 Guida operativa del programma TQ Sistema Capitolo 3 Guida operativa del programma TQ Sistema Panoramica delle funzionalità Questa guida contiene le informazioni necessarie per utilizzare il pacchetto TQ Sistema in modo veloce ed efficiente, mediante

Dettagli

Costruzione del layout in gino cms

Costruzione del layout in gino cms Costruzione del layout in gino cms Autore: Marco Guidotti - marco.guidotti(at)otto.to.it Versione: 1.0 Data: 2013-06-17 Layout Nell area amministrativa di gino l applicazione Layout permette di gestire

Dettagli

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile

Dettagli

Il menu File contiene tutti i comandi relativi alle seguenti operazioni:

Il menu File contiene tutti i comandi relativi alle seguenti operazioni: 1 - FILE FIGURA 1.1 Il menu File contiene tutti i comandi relativi alle seguenti operazioni: - apertura e salvataggio di disegni nuovi ed esistenti; - spedizione di disegni tramite email; - collegamento

Dettagli

SPECIFICHE E LIMITI DI EXCEL

SPECIFICHE E LIMITI DI EXCEL SPECIFICHE E LIMITI DI EXCEL Un "FOGLIO DI CALCOLO" è un oggetto di un programma per computer costituito da un insieme di celle, organizzate in righe e colonne, atte a memorizzare dati ed effettuare operazioni

Dettagli

OSSIF WEB. Manuale query builder

OSSIF WEB. Manuale query builder OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI

Dettagli

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

Dettagli

I Codici Documento consentono di classificare le informazioni e di organizzare in modo logico l archiviazione dei file.

I Codici Documento consentono di classificare le informazioni e di organizzare in modo logico l archiviazione dei file. Archivia Modulo per l acquisizione, l archiviazione e la consultazione di informazioni Il modulo Archivia permette l acquisizione, l archiviazione e la consultazione di informazioni (siano esse un immagine,

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

A tal fine il presente documento si compone di tre distinte sezioni:

A tal fine il presente documento si compone di tre distinte sezioni: Guida on-line all adempimento Questa guida vuole essere un supporto per le pubbliche amministrazioni, nella compilazione e nella successiva pubblicazione dei dati riguardanti i dirigenti sui siti istituzionali

Dettagli

STRUMENTI DI PRESENTAZIONE MODULO 6

STRUMENTI DI PRESENTAZIONE MODULO 6 STRUMENTI DI PRESENTAZIONE MODULO 6 2012 A COSA SERVE POWER POINT? IL PROGRAMMA NASCE PER LA CREAZIONE DI PRESENTAZIONI BASATE SU DIAPOSITIVE (O LUCIDI) O MEGLIO PER PRESENTARE INFORMAZIONI IN MODO EFFICACE

Dettagli

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Sistema inoltro telematico domande di nulla osta, ricongiungimento e conversioni Manuale utente Versione 2 Data creazione 02/11/2007 12.14.00

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma Introduzione Macro macro istruzione Sequenza di comandi memorizzati programma Scopo: eseguire più volte una sequenza di operazioni che a mano sarebbero noiose e ripetitive, se non proibitive Le macro Le

Dettagli

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie Facoltà di Scienze Motorie CHE COS È UN FOGLIO ELETTRONICO Una tabella che contiene parole e numeri che possono essere elaborati applicando formule matematiche e funzioni statistiche. Esame di Informatica

Dettagli

GUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0)

GUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0) ------------------------------------------------- GUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0) GUIDA UTENTE BILLIARDS COUNTER (Vers. 1.2.0)... 1 Installazione Billiards Counter... 2 Primo avvio e configurazione

Dettagli

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Software standard Alpi Label Ver. 2.2.0.0

Software standard Alpi Label Ver. 2.2.0.0 Pag. 1 di 16 Manuale utente Software standard Alpi Label Ver. 2.2.0.0 Pag. 2 di 16 1 SOMMARIO Sommario 1 Sommario... 2 2 Specifiche Tecniche... 3 3 Maschera Principale... 4 4 Funzioni menù... 7 Pag. 3

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia Scuola Digitale Manuale utente Copyright 2014, Axios Italia 1 SOMMARIO SOMMARIO... 2 Accesso al pannello di controllo di Scuola Digitale... 3 Amministrazione trasparente... 4 Premessa... 4 Codice HTML

Dettagli

2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento. Uso del computer e gestione dei file 57 2.2.2.1 Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento. All interno

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

[FINANZAECOMUNICAZIONE / VADEMECUM]

[FINANZAECOMUNICAZIONE / VADEMECUM] 2011 Finanza e Comunicazione [FINANZAECOMUNICAZIONE / VADEMECUM] [PANNELLO DI CONTROLLO SCRIVERE UN ARTICOLO PUBBLICARE MEDIA CREARE UNA GALLERIA FOTOGRAFICA MODIFICHE SUCCESSIVE CAMBIARE PASSWORD SALVARE,

Dettagli

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla

Dettagli

ISTRUZIONI PER L INSTALLAZIONE DEL PROGRAMMA PER L INVIO AUTOMATICO DELLE FATTURE VIA E-MAIL

ISTRUZIONI PER L INSTALLAZIONE DEL PROGRAMMA PER L INVIO AUTOMATICO DELLE FATTURE VIA E-MAIL ISTRUZIONI PER L INSTALLAZIONE DEL PROGRAMMA PER L INVIO AUTOMATICO DELLE FATTURE VIA E-MAIL Sommario Configurazione computer... 2 Sistemi operativi a 32 bit... 2 Windows XP... 2 Windows Vista... 2 Windows

Dettagli

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci Excel avanzato I nomi marco.falda@unipd.it Gli indirizzi e le formule possono essere sostituiti da nomi documentazione astrazione Si creano tramite Inserisci Nome Definisci Vengono raccolti nell area riferimento

Dettagli

Manuale per l utilizzo dell applicazione Client per il controllo remoto di apparecchiature da laboratorio

Manuale per l utilizzo dell applicazione Client per il controllo remoto di apparecchiature da laboratorio Manuale per l utilizzo dell applicazione Client per il controllo remoto di apparecchiature da laboratorio Dopo il collegamento alla Home Page del laboratorio di teledidattica è possibile scaricare il file

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Breve guida introduttiva ad Orario Grafico LITE 1.27

Breve guida introduttiva ad Orario Grafico LITE 1.27 Introduzione Breve guida introduttiva ad Orario Grafico LITE.7 Orario Grafico è un potente software sviluppato da Giorgio Stagni in grado di produrre sia grafici orari tematici (per tipo di materiale,

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

Dettagli