Question

Je cherche un moyen de capturer des images de ma webcam en utilisant DirectShow, de préférence je souhaite utiliser des résolutions HD si possible, et éviter les pointes de processeur à 60-100%.

Quelqu'un peut-il me tirer dans la bonne direction sur la façon de faire cela?

J'ai essayé d'utiliser DSPACK, mais ce composant fait mon CPU Spike 90-100%

Si toutefois quelqu'un ici sait comment utiliser DSPACK avec moins de consommation de processeur, j'en serais également content :)

Était-ce utile?

La solution

J'utilise DSPACK depuis longtemps sur des machines bon marché intégrées dans les voitures. Ils ont lent ~ 700 MHz via des processeurs (noyau unique) et 256 Mo de RAM.

L'application capture 12 images par seconde À partir d'une caméra sur le toit de la voiture, et chaque fois qu'une nouvelle position GPS (une fois par seconde) entre, elle ajoute des coordonnées à l'image et la stocke comme un .jpg sur un disque dur.

Lorsque l'application capture des images et affiche les images sur un formulaire sans créer d'images .jpg, l'application prend sur Temps de processeur de 5% (!).

Si vous obtenez un temps de processeur à 90% avec DSPACK, c'est probablement à cause d'un traitement supplémentaire qui est fait avec les images.

J'ai essayé toutes sortes de bibliothèques dans mes recherches pour créer ce programme, et DSPACK a été un gagnant clair sur de nombreux fronts. Je ne l'abandonnerais pas trop tôt.

Autres conseils

J'ai une application vidéo en temps réel qui utilise la vidéocondie de Mitov. Il s'agit d'une collection d'objets qui sont bien conçus, filetés et tirent parti de tous les noyaux CPU disponibles.

Lorsque je vais à sa bibliothèque avec de nouveaux besoins, je suis généralement agréablement surpris de voir qu'il l'avait prévu. Le soutien a également été très bon.

Ce n'est pas bon marché: 450 $, mais pour mes besoins, cela vaut chaque centime. C'est gratuit pour une utilisation non commerciale: http://www.mitov.com/html/videolab.html.

Sa démo CaptureBitmap capture des cadres successifs à un bitmap. Vous déposez simplement plusieurs composants sur un formulaire et écrivez six lignes de code! La bibliothèque a beaucoup de crochets pour aller plus loin que cet exemple simple. (Dans Win 7, Delphi 2010, les démos sont installées ici: C: Program Files (x86) Embarcadero Rad Studio 7.0 Labpacks Demos Delphi2010 Videolab CaptureBitmap. Mais je sais qu'il prend en charge jusqu'à ce que Delphi 7.)

Une chose qui différencie sa bibliothèque, c'est qu'il utilise les bibliothèques Intel IPP: http://software.intel.com/en-us/articles/intel-ipp. Lorsque vous exécutez des chipsets Intel, si vous choisissez d'expédier les DLL Intel, vous obtenez les meilleures performances que les ingénieurs d'Intel pourraient sortir de leurs puces. Si la bibliothèque de Mitov avec IPP ne peut pas traiter votre vidéo assez rapidement, je serais surpris si une bibliothèque vidéo le peut.

Mitov a debout dans la communauté de Delphi: il était un conférencier sur le multi-threading chez Codeage: http://www.embarcadero.com/coderage5/sessions (Session du jeudi.)

Ce qui précède peut sembler être un shill pour son entreprise. Je n'ai aucune relation autre que comme licencié très heureux. Je suis juste très heureux (et soulagé) que j'ai trouvé ses outils et j'ai décidé de les utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top