|
|
(20 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | '''OpenCV''' (''Open Source Computer Vision Library'') in via generale è una libreria di funzioni ''open source'' specifica per la ''vision computer'' e realizzata per fornire una infrastruttura comune per applicazioni di ottica artificiale.
| |
| | | |
− | | + | <FONT Color=red><B>Con le nuove versioni di OpenCV non è più possibile utilizzare in Gambas alcune funzioni esterne utili per mostrare un'immagine in una finestra</b></font> |
− | Fra le varie possibilità mostreremo come far mostrare in modo molto semplice un'immagine all'interno di una finestra, autonoma rispetto ad altre eventuali generate dall'applicativo Gambas.
| |
− | | |
− | Si utilizzerà innanzitutto la libreria nella sua attuale versione: ''libopencv_highgui.so.2.4.2''.
| |
− | | |
− | | |
− | Data la semplicità del codice necessario, verrà descritto di seguito un breve esempio:
| |
− | <FONT color=gray>' ''Il valore "CV_WINDOW_AUTOSIZE" fa adattare automaticamente la dimensione della finestra alla dimensione dell'immagine caricata,''
| |
− | ' ''e non consente quindi una successiva modifica manuale di tali dimensioni:''</font>
| |
− | '''Private''' Const CV_WINDOW_AUTOSIZE As Byte = 1
| |
− | '''Private''' Const CV_LOAD_IMAGE_COLOR As Byte = 1
| |
− |
| |
− |
| |
− | Library "libopencv_highgui:2.4.2"
| |
− |
| |
− | <FONT color=gray>' ''int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE )''</font>
| |
− | '''Private''' Extern cvNamedWindow(name As String, flags As Integer) As Integer
| |
− |
| |
− | <FONT color=gray>' ''IplImage* cvLoadImage( const char* filename, int flags )''</font>
| |
− | '''Private''' Extern cvLoadImage(filename As String, flagLIC As Integer) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''void cvShowImage( const char* name, const CvArr* image )''</font>
| |
− | '''Private''' Extern cvShowImage(name As String, imageP As Pointer)
| |
− |
| |
− | <FONT color=gray>' ''void cvMoveWindow(const char * name, Int x, Int y)''</font>
| |
− | '''Private''' Extern cvMoveWindow(name As String, xI As Integer, yI As Integer)
| |
− |
| |
− | <FONT color=gray>' ''void cvDestroyWindow( const char* name )''</font>
| |
− | '''Private''' Extern cvDestroyWindow(name As String)
| |
− |
| |
− | <FONT color=gray>' ''void cvDestroyAllWindows(void)''</font>
| |
− | '''Private''' Extern cvDestroyAllWindows()
| |
− |
| |
− |
| |
− |
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Dim imago As Pointer
| |
− |
| |
− |
| |
− | <FONT color=gray>' ''Viene impostato l'eventuale titolo della finestra:''</font>
| |
− | cvNamedWindow("Titolo della finestra", CV_WINDOW_AUTOSIZE)
| |
− |
| |
− | <FONT color=gray>' ''Viene caricata l'immagine che dovrà essere mostrata nella finestra:''</font> |[[#Note|1]]|
| |
− | imago = cvLoadImage("/percorso/della/immagine", CV_LOAD_IMAGE_COLOR) |[[#Note|2]]|
| |
− |
| |
− | <FONT color=gray>' ''Viene mostrata l'immagine nella finestra.''</font> |[[#Note|3]]|
| |
− | cvShowImage("Titolo della Finestra", imago)
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button2_Click()
| |
− |
| |
− | <FONT color=gray>' ''Viene distrutta la finestra individuata sulla base del suo titolo:''</font>
| |
− | cvDestroyWindow("Titolo della Finestra")
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button3_Click()
| |
− |
| |
− | <FONT color=gray>' ''La seguente funzione distrugge <SPAN style="text-decoration:underline">tutte</span> le finestre create con l'API di "OpenCV":''</font>
| |
− | cvDestroyAllWindows()
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button4_Click()
| |
− |
| |
− | <FONT color=gray>' ''La seguente funzione sposta la finestra, individuata sulla base del suo titolo, alle coordinate X e Y in essa specificate:''</font>
| |
− | cvMoveWindow("Titolo della Finestra", <FONT color=gray>''coord. X''</font>, <FONT color=gray>''coord. Y''</font>)
| |
− |
| |
− | '''End
| |
− |
| |
− | | |
− |
| |
− | | |
− | | |
− | | |
− | | |
− | =Note=
| |
− | [1] E' possibile caricare solo le immagini dei seguenti formati:
| |
− | * Windows bitmaps - BMP, DIB;
| |
− | * JPEG files - JPEG, JPG, JPE;
| |
− | * Portable Network Graphics - PNG;
| |
− | * Portable image format - PBM, PGM, PPM;
| |
− | * Sun rasters - SR, RAS;
| |
− | * TIFF files - TIFF, TIF.
| |
− | | |
− | [2] Il secondo parametro specifica la colorazione dell'immagine:
| |
− | * se > 0 (''CV_LOAD_IMAGE_COLOR''), l'immagine sarà comunque caricata come immagine a colori a 3-canali;
| |
− | * se = 0 (''CV_LOAD_IMAGE_GRAYSCALE''), l'immagine caricata sarà mostrata in scala di grigio;
| |
− | * se < 0 (''CV_LOAD_IMAGE_UNCHANGED''), l'immagine sarà caricata e mostrata così com'è.
| |
− | | |
− | [3] Se il 1° argomento della funzione "cvShowImage" ha un testo <SPAN style="text-decoration:underline">diverso</span> da quello impostato nella funzione "cvNamedWindow", allora sarà creata un'ulteriore finestra e l'immagine verrà caricata in questa ulteriore finestra.
| |