AFORGE webcam usb variabili

di il
3 risposte

AFORGE webcam usb variabili

Ciao

Da solo non ci riesco ho provato in lungo e in largo senza riuscirci per le mie poche conoscenze.

Uso una webcam USB per vedere le immagini in una finestra in VBnet

Il codice che uso semplificato e che funziona perfettamente:

'===================================================
' PER AFORGE USB webcam
Imports AForge
Imports AForge.Video
Imports AForge.Video.DirectShow


'===================================================
' VIEW USB WEBCAM ON VBNET / VISUAL BASIC NET
'===================================================

Public Class frmMonitor

    '========================
    ' AFORGE VIDEO
    Dim CAMERA As VideoCaptureDevice
    Dim Bmp As Bitmap
    '========================



    End Sub

    Private Sub frmMonitor_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim Cameras As VideoCaptureDeviceForm = New VideoCaptureDeviceForm
        If Cameras.ShowDialog() = Windows.Forms.DialogResult.OK Then
            CAMERA = Cameras.VideoDevice
            AddHandler CAMERA.NewFrame, New Video.NewFrameEventHandler(AddressOf Captured)
            CAMERA.Start()
        End If

    End Sub
    
    Private Sub Captured(sender As Object, eventargs As NewFrameEventArgs)
        Bmp = DirectCast(eventargs.Frame.Clone(), Bitmap)
        PictureBox3.Image = DirectCast(eventargs.Frame.Clone(), Bitmap)
    End Sub
    Private Sub frmMonitor_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        If CAMERA.IsRunning = True Then CAMERA.Stop() 
    End Sub

 End Class

Semplificato e funziona perfettamente ma non riesco a mettere delle “variabili” per riutilizzarle senza doverle sempre scegliere ad ogni avvio… o meglio non riesxco a capire come fare 

Dovrei quindi riuscire ad evitare il cmbox con le tre scelte proposte ad ogni avvio:

>. VIDEO DEVICE
>. VIDEO RESOLUTION
>. VIDEO INPUT

e quindi partire direttamente…

Inoltre se tolgo la Webcam dalla presa USB, il programma va in errore…

Qualche consiglio?

Ho provato a leggere le varie info su AForge ma non riesco proprio a capire per mia incapacità.

Ringrazio tanto!

3 Risposte

  • Re: AFORGE webcam usb variabili

    Prova ad impostare il primo device di input (webcam) così

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           Dim Cameras As VideoCaptureDeviceForm = New VideoCaptureDeviceForm
           Dim inColl As FilterInfoCollection = New FilterInfoCollection(FilterCategory.VideoInputDevice)
           CAMERA = New VideoCaptureDevice(inColl(0).MonikerString)
           AddHandler CAMERA.NewFrame, New Video.NewFrameEventHandler(AddressOf Captured)
           CAMERA.Start()
       End Sub

    Per impostare altri device, lavora sull'indice di inColl(0)

    Per i parametri vedi tu

    Per l'errore, mostra cosa succede esattamente e in quale riga

  • Re: AFORGE webcam usb variabili

    Grazie mille per la dritta Oregon io non ci sarei mai arrivato!

    Funziona e metto il “3” inColl(3) della webcam TRUST WEBCAM LIVE con il driver della webcam e già non è male….

    Quindi parte al volo con la webcam ma non so con quale risoluzione.

    Questa sarebbe la finestra che Aforge mi mostra con la mia riga di codice iniziale e che vorrei poter memorizzare dopo la scelta.

    Quindi mi mancherebbe anche il “video resolution” che dovrebbe essere 640x480 o 800x600 e il “video input” che comunque non ho e quindi resterebbe “NOT SUPPORTED”.

    Ecco che dopo OK, vorrei memorizzare le 3 scelte… ad esempio in tre variabili X Y Z poi utilizzerei con inColl(X) e gli altri due inColl2(Y) e inColl3(Z) che pur cercando non ho proprio idea di come trovarli per metterli variabili.

    Ho provato con qualche modifica nella tua linea

           Dim inColl As FilterInfoCollection = New FilterInfoCollection(FilterCategory.VideoInputDevice)
    

    con listare i vari controlli disponibili … ma non mi esce nulla che io capisca di poter utilizzare…

    Qui penso sia meglio mettere un classico tasto <CONFIG> con il mio codice sopra del “frmMonitor_Load”  mettendolo in un altro sub dove Aforge mi fa uscire la finestra del CONFIG sopra e all'OK e qui mi dovrebbe salvare X Y Z che proprio non so dove prenderli…

    ---

    L'errore che mi segnala se tolgo la webcam è anche quando ad esempio inserisco la variabile di InColl ad esempio (5) che non esiste:

    questo all'avvio con ID 5 si ferma su

                AddHandler CAMERA.NewFrame, New Video.NewFrameEventHandler(AddressOf Captured)

    Con l'errore

    System.NullReferenceException: 'Riferimento a un oggetto non impostato su un'istanza di oggetto.'

    dato che ora sono in remoto con il PC di casa e non posso togliere la spina USB della WEBCAM… quando rientro provo anche quello, ma penso sia lo stesso errore dato che poi non trova la webcam come mettere il X=“5” nel <inColl>

    Già sono riuscito ad inserire la verifica della presenza della CAMERA.start per dargli il CAMERA.stop con:

                If CAMERA IsNot Nothing Then CAMERA.Stop()

    Che poi non so che differenza ci sia con il CAMERA.WaitToStop o se lasciare solo lo STOP… comunque con il HadHandler nel mio codice posso riattivare la webcam nei due casi senza errori…

    Ti ringrazio già per la riga di codice che mi hai passato sopra… da solo non avrei saputo farla… ;-)

    Come sempre intanto grazie…

  • Re: AFORGE webcam usb variabili

    dato che ora sono in remoto con il PC di casa e non posso togliere la spina USB della WEBCAM… quando rientro provo anche quello, ma penso sia lo stesso errore dato che poi non trova la webcam come mettere il X=“5” nel <inColl>

    Niente… ho provato a togliere la presa USB e non succede nulla… strano… prima succedeva… giustamente si blocca solo l'immagine, mentre se metto una periferica inesistente quello mi segnala subito l'errore descritto sopra.

    Tra l'altro vedo che l'immagine che ho tentato di allegare non appare, ho ancora cercato di trovare come recuperare le tre variabili all'OK del combo ma niente… purtroppo proprio non trovo nulla o come fare.

    Per il resto il codice che ho pubblicato qui funziona benissimo e con l'accorgimento del <IfNot Nothing>, la fermo se attiva senza più ‘orrori’ miei… ;-)

    Grazie se qualcuno mi potrà consigliare per recuperare le 3 variabili d'avvio.

    tnx

Devi accedere o registrarti per scrivere nel forum
3 risposte