|
|
(13 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> |
− | Di seguito un possibile codice per 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.8''.
| |
− | | |
− | | |
− | Data la semplicità del codice necessario, verrà descritto di seguito un breve esempio:
| |
− | Library "libopencv_highgui:2.4.8"
| |
− |
| |
− | Private Const CV_WINDOW_AUTOSIZE As Integer = 1
| |
− | Private Const CV_LOAD_IMAGE_COLOR As Integer = 1
| |
− |
| |
− | <FONT color=gray>' ''int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE )''
| |
− | ' ''Creates a window.''</font>
| |
− | Private Extern cvNamedWindow(name As String, flags As Integer) As Integer
| |
− |
| |
− | <FONT color=gray>' ''IplImage* cvLoadImage( const char* filename, int flags )''
| |
− | ' ''Loads an image from a file.''</font>
| |
− | Private Extern cvLoadImage(filename As String, flagLIC As Integer) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''void cvShowImage( const char* name, const CvArr* image )''
| |
− | ' ''Displays an image in the specified window.''</font>
| |
− | Private Extern cvShowImage(name As String, imageP As Pointer)
| |
− |
| |
− | <FONT color=gray>' ''void cvMoveWindow(const char * name, Int x, Int y)''
| |
− | ' ''Moves window to the specified position.''</font>
| |
− | Private Extern cvMoveWindow(name As String, xI As Integer, yI As Integer)
| |
− |
| |
− | <FONT color=gray>' ''void cvDestroyWindow( const char* name )''
| |
− | ' ''Destroys a window.''</font>
| |
− | Private Extern cvDestroyWindow(name As String)
| |
− |
| |
− | <FONT color=gray>' ''void cvDestroyAllWindows(void)''
| |
− | ' ''Destroys all of the HighGUI windows.''</font>
| |
− | Private Extern cvDestroyAllWindows()
| |
− |
| |
− |
| |
− | '''Public''' Sub Main()
| |
− |
| |
− | Dim imago As Pointer
| |
− |
| |
− | <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. Inoltre, 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> <SUP>[ [[#Note|Nota 1]] ]</sup> <SUP>[ [[#Note|Nota 2]] ]</sup>
| |
− | imago = cvLoadImage("<FONT color=gray>''/percorso/della/immagine/da/mostrare''</font>", CV_LOAD_IMAGE_COLOR)
| |
− |
| |
− | <FONT color=gray>' ''Viene mostrata l'immagine nella finestra.''</font> <SUP>[ [[#Note|Nota 3]] ]</sup>
| |
− | 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 per un'altra finestra", 200, 400)
| |
− |
| |
− | '''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.
| |
− | | |
− | | |
− | | |
− | =Riferimenti=
| |
− | * [http://docs.opencv.org/index.html Il sito di OpenCV].
| |