|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre à l'essai
![]() Inscription : juin 2007 Messages : 31 ![]() |
Salut,
J'ai un peu galèré sous OpenCv. Cela fait 15jours que je bosse dessus. Je me suis rendu compte qu'un certain nombre de personne posait des questions concernant les webcams et le traitement des images. Voici le petit bout de code auquel je suis parvenu apres de multiples essais. Un bonne base me semble-t-il pour débuter et ECHANGER. Source a compiler en C++ ( sinon, il faut remplacer le (void *) du callback par un & J'ai aussi optimisé la routine d'acces au pixel de la doc officielle, mais je suis loin d'être un "gourou" du C/C++. J'èspère que ceci sera amélioré par d'autres. Jean-Pierre ps: Il y a un test de vitesse et un affichage du nombre de frames. Utile pour l'optimisation. La résolution de la webcam est de 320*240 Code :
Edit : Deuxième version. Beaucoup plus rapide !!! 2,5 fois. Code :
Code :
|
||||||
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 126 ![]() |
Hum,
J'ai lu dans la doc ou sur le groupe yahoo que l'utilisation de call_back ne se faisait plus trop... Pourquoi utiliser callback() Quel est l'avantage de cette technique par rapport a un cvcapture ? Merci |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : juin 2007 Messages : 31 ![]() |
Franchement, c'est tout a fait par hazard que je me suis "fixé" sur les routines de CVCAM. Le traitement par CallBack m'a semblé plus simple pour le "débutant" en C/C++ que je suis. Je n'ai pas fait de tests comparatifs de performance, mais développant parfois des wrappers pour d'autres langages (PowerBasic, Blitz3D, VB6...) l'usage de CVCAM et de la DLL associée me simplifie la tache. C'est un module autonome pour ce qui est de la capture (Cam et Avi).
De plus, je suis du genre a nager a contre-courant sans le s'avoir...C'est mon destin Le traitement vidéo étant mon objectif final , s'il s'avère que CvCapture est plus performant ( et rien que plus performant), je m'y interresserai de près. Jean-Pierre. Edit : Un inconvénient sans doute de CVCAM : La fenêtre de visu toujours présente car créée par défault. 1) une capture 2) un traitement 3) une exploitation du résultat sans visualisation aucune. Il me semble que cela n'est pas possible avec CVCAM. En revanche, cvCapture le permet. Cette fonction aussi (cvGetCaptureProperty) manque parfois. Bref, si les performances sont identiques, passer de l'une a l'autre des méthodes me convient en fonction de la tâche a effectuer. Car le Callback..hum..j'aime. Un appel à chaque capture, sans se "prendre la tête" sur le timing..... |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 126 ![]() |
OK ca roule.
Est-ce que par un pure hasard tu utilise du background subtraction ou background removal dans tes codes ? Si oui, utilises-tu la methode openCV c'est a dire Gaussian ou FGD ou alors autre chose ? Merci |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : juin 2007 Messages : 31 ![]() |
"....background subtraction ou background removal dans tes codes ....."
Non. Pour l'heure, j'en suis aux tests d'acces des pixels. Je tâte aussi du coté de l'assembleur pour plus de vitesse. De plus, Le moteur 3D de Blitz3D, de Physique de Ageia ( autre dada ) et leurs adaptations sous PowerBasic me prennent du temps. JP |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 126 ![]() |
Apres modification de la taille d'acqusition des images de ma camera les methodes openCV se sont revele tres efficaces : parfait pour une application temps reel.
Bien cordialement. |
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : juin 2007 Messages : 31 ![]() |
Cela ne me surprend pas.
Pour l'heure j'effectue tout mes tests (OpenCV, moteurs 3D et physique ) sur un portable Sempron 3000+ avec vidéo intégré( alors que ma machine de bureau est un C2D E6600 overclocké a 3.6Ghz...... ) L'usage du portable "m'oblige" a optimiser a fond. Et les résultats sont sympas. Jpierre |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 3 ![]() |
Voila je me decide enfin a poster car j'ai une question a poser...
J'aimerai faire de l'acquisition de plusieurs cameras en meme temps et je me demande ce qui est le plus performant, cvcam ou cvcapture? Le truc c'est que j'utilise cvcapture mais j'ai des soucis au niveau de l'acquisition car il me propose sans arret le choix de mes cams(laquelle je veux afficher) mais ca fini par planter... Quelqu'un aurait-il une solution que je puisse etudier ou peut-etre une indication sur quelles fonctions me pencher pour realiser cela? Merci d'avance! |
|
|
00
|
|
|
#9 | ||||
|
Membre à l'essai
![]() Inscription : juin 2007 Messages : 31 ![]() |
Sans doute avec un bout de code comme celui la. Exemple pour l'init de 3 caméras. Il faudrait aussi 3 routines de callback pour la capture et le traitement. Les routines sonts appelées a chaque capture valide. C'est sans doute un cas ou la méthode des callbacks est la plus interréssante.
JP Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 4 ![]() |
bjr
je cherche a implémenter une méthode de soustraction de l'arrière plan basé sur la différence entre les pixel intitulé "adaptif background with persistent pixels" à l'aide de la bibliothéque openCv. j'espére qu'il y a quelqu'un qui peut m'aider. merci d'avance |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com