Catturare immmagini con 2 o piu web-cam

lunedì 01 dicembre 2008 - 19.52

rinaldi.701 Profilo | Newbie

ciao a tutti , sono un neofita del forum e di vb.net.
ho seguito la chiarissima spiegazione sul modo di catturare immagini con una (1) web cam e sono riuscito a fare il mio programmino che funziona e scatta foto a scadenza programmata ( dopo una breve , ma violenta, lotta con il timer di Vb.net).
Adesso complico la questione: vorrei cattuare immagini con una web cam che guarda a destra(A) ed una che guarda a sinistra(B).
Le web cam sono assolutamente identiche ( e quindi con stesso driver) : come faccio a capire qual'e' la A e quale la B e a gestirle contemporaneamente?
Mi dispiace disturbare con un problema probabilmente banale e gia' trattato , ma non so veramente dove sbattere la testa.
Vi ringrazio in anticipo.
Rino

luigidibiasi Profilo | Guru

Ciao, non vorrei demoralizzarti subito (hai scritto neofita) ma dubito che con vb.net ,a meno di non trovare qualche ocx gratuito e fatto apposta per lo scopo, riuscirai ad acquisire contemporaneamente da piu' periferiche. (se qualcuno mi smentisse ne sarei lieto perché effettivamente per il lavoro di tutti i giorni c++ non è proprio un amico)

Se ho capito bene tu stai usando le api wmcap (l'esempio lo hai trovato su questo sito giusto?) e quando tenti di avviare entrambe le webcam ti mostra la finestra di dialogo per la selezione dell'hardware da utilizzare.

Se il tuo problema è questo (era anche un mio problema) ti tocca usare c++ e directshow per comandarti direttamente l'acquisizione.

Se vuoi descrivi meglio il tuo problema.

Luigi Di Biasi

rinaldi.701 Profilo | Newbie

grazie per la risposta . Ho effettivamente usato l'api per la cattura dell' immagine, secondo l'esempio che ho trovato in questo sito. Temevo che si sarebbe dovuto passare per C++.
Ma forse una strada potrebbe essere quella di lanciare 2 ( piu' ) istanze dello stesso eseguibile. Il programma dovrebbe contenere un timer che faccia eseguire la sub che cattura l'immagine quando l'orologio del sistema segna una certa ora ( minuti, secondi, decimi). In questo modo le 2 istanze sarebbero sincronzzate dall'orolgio comune ( savo forse un po di ritardo tollerabile).
cosa ne pensi? c'e' un esempio d'impostazione del timer a cui ispirarsi?

Grazie
ciao
Rinaldi.701

luigidibiasi Profilo | Guru

Ciao,
purtroppo il problema di rimane anche avviando due istanze dello stesso eseguibile. ( o almeno dovrebbe )

Quando tenti di avviare la cattura non hai la possibilità di scegliere quale periferica usare ( perchè la api che utilizzi, avicap32, ti mostra solo wdm capture driver lasciando a windows la scelta di quale webcam avviare)

Avviando la prima istanza la cattura si avvia correttamente sulla periferica di default che windows ha scelto per te ;) mentre avviando la seconda istanza dovrebbe mostrarti una finestra di dialogo in cui scegliere quale periferica usare. (sintono che stai affrontando il problema di cui parlo)

Se sei fortunato quando avvii la seconda istanza la cattura parte ( solo con determinati driver ) altrimenti no.

Se hai fretta di implementarti il programma vai su msdn e leggiti la guida a DirectShow e poi cercati il codice per implementarti un Grabber semplice per i frame ( vuoi catturare immagini non video giusto? )

Se non hai fretta puoi attendere qualche giorno in modo che finisco di pubblicare sul blog l'esempio in C++ che riguarda proprio questo problema.

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

rinaldi.701 Profilo | Newbie

mi sembra la cosa migliore.

grazie
ciao
rinaldi.701
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5