Differenze tra le versioni di "Mostrare un'immagine in una finestra con le funzioni dell'API di OpenCV"

Da Gambas-it.org - Wikipedia.
(Creata pagina con ''''OpenCV''' (''Open Source Computer Vision Library'') in via generale è una libreria di funzioni ''open source'' specifica per la ''vision computer'' e realizzata per fornir...')
 
(Pagina sostituita con ' <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></...')
 
(21 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ì come'è.
 
 
 
[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.
 

Versione attuale delle 19:30, 5 dic 2020

Con le nuove versioni di OpenCV non è più possibile utilizzare in Gambas alcune funzioni esterne utili per mostrare un'immagine in una finestra