Domanda

Sto cercando un modo per acquisire immagini dalla mia webcam utilizzando DirectShow, preferibilmente desidero utilizzare risoluzioni HD, se possibile, ed evitare picchi della CPU al 60-100%.

qualcuno può spararmi nella giusta direzione su come farlo?

Ho provato a utilizzare DSPack, ma questo componente fa aumentare la mia CPU del 90-100%

se tuttavia qualcuno qui sapesse come utilizzare DSPack con un minore consumo di CPU, ne sarei felice anche :)

È stato utile?

Soluzione

Ho usato DSPACK da molto tempo su macchine a basso costo integrate in auto. Hanno lento ~ 700MHz tramite processori (singolo core) e 256 MB di RAM.

L'applicazione cattura 12 immagini al secondo Da una fotocamera sul tetto dell'auto e ogni volta che arriva una nuova posizione GPS (una volta al secondo), aggiunge coordinate all'immagine e la memorizza come un .jpg su un harddisk.

Quando l'applicazione cattura le immagini e mostra le immagini su un modulo senza creare immagini .jpg, l'applicazione prende circa 5% di tempo del processore (!).

Se si ottiene il tempo della CPU al 90% con DSPACK, è probabilmente a causa dell'elaborazione extra che viene eseguita con le immagini.

Ho provato tutti i tipi di biblioteche nella mia ricerca per creare questo programma e DSPACK è stato un chiaro vincitore su molti fronti. Non ci arrenderò troppo presto.

Altri suggerimenti

Ho un'applicazione video in tempo reale che utilizza VideoLibrary di Mitov.È una raccolta di oggetti ben progettati, threaded e sfrutta tutti i core della CPU disponibili.

Quando vado nella sua biblioteca con qualche nuova esigenza, di solito sono piacevolmente sorpreso nel vedere che l'ha anticipata.Anche il supporto è stato molto buono.

Non è economico:$ 450, ma per le mie esigenze vale ogni centesimo.È gratuito per uso non commerciale: http://www.mitov.com/html/videolab.html.

La sua demo CaptureBitMap cattura fotogrammi successivi in ​​una bitmap.Basta trascinare diversi componenti in un modulo e scrivere sei righe di codice!La libreria ha molti spunti per andare oltre questo semplice esempio.(In Win 7, Delphi 2010, le demo sono installate qui:C:\Programmi (x86)\Embarcadero AD Studio\7.0\LabPacks\Demos\Delphi2010\VideoLab\CaptureBitmap.Ma so che supporta già Delphi 7.)

Una cosa che differenzia la sua libreria è che utilizza le librerie Intel IPP: http://software.intel.com/en-us/articles/intel-ipp.Quando si esegue su chipset Intel, se si sceglie di fornire le DLL Intel, si ottengono le migliori prestazioni che gli ingegneri Intel potrebbero ottenere dai loro chip.Se la libreria Mitov con IPP non riesce a elaborare il tuo video abbastanza velocemente, sarei sorpreso se qualche libreria video potesse farlo.

Mitov ha una certa reputazione nella comunità di Delfi:è stato relatore sul multi-threading a CodeRage: http://www.embarcadero.com/coderage5/sessions (Sessione del giovedì.)

Quanto sopra può sembrare che io sia un complice della sua azienda.Non ho alcun rapporto se non quello di licenziatario molto soddisfatto.Sono semplicemente molto felice (e sollevato) di aver trovato i suoi strumenti e di aver deciso di usarli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top