Tout rapide Python GUI pour afficher des images en direct de la Caméra
Je suis en train d'afficher des images en direct à partir de mon 1394 de la caméra.
Actuellement mon code est en mesure d'obtenir des images dans une boucle de la caméra et j'ai été à la recherche pour n'importe quel rapide de l'interface graphique qui permettra de mettre à jour dynamiquement (comme un thread séparé). Je peux le faire en PyQt peut-être à l'aide de QThreads mais est-il une recommandation ou d'une manière plus rapide de faire cela??
Voici mon code
#Boucle de capturer les images de la caméra
for frame in range(1,500):
print 'frame:',frame
TIME.sleep(1) #capture frame every second
image_binary = pycam.cam.RetrieveBuffer()
#convert to PIL Image
pilimg = PIL.Image.frombuffer("L",(cimg.GetCols(),cimg.GetRows()),image_binary,'raw', "RGBA", 0, 1)
# At this point I want to send my image data to a GUI window and display it
Merci.
OriginalL'auteur blueskin | 2010-08-29
Vous devez vous connecter pour publier un commentaire.
Voici wxPython code qui va le faire...
Quelle est la version de wxPython utilisez-vous? Quelle plate-forme?
Ubuntu 10.04; wxPython 2.8; Python 2.6
wxPython 2.8.10? Ou plus bas?
Je suis sous Ubuntu 10.04, Python 2.6 et wx dans la version
2.8.10.1 (gtk2-unicode)
et il fonctionne.OriginalL'auteur FogleBird
Je pensais que je voudrais essayer PyQt4 imageviewer.py exemple et il a travaillé pour moi.
Merci à tous pour votre aide les gars.
Voici mon code modifié:
OriginalL'auteur blueskin
Je recommande d'utiliser Tkinter, puisqu'elle est déjà partie de python. Je n'ai jamais utilisé PIL, mais un rapide google montre qu'il est facile à utiliser PIL images dans les Savoirs traditionnels des widgets (par l'intermédiaire de la lip.ImageTk.PhotoImage() la méthode).
Si vous avez déjà un widget Tkinter, configuré pour afficher les images (une Étiquette widget fonctionne très bien) tout ce que vous devez faire est de les organiser pour que l'image soit mis à jour toutes les secondes. Vous pouvez le faire en utilisant la
after
commande de tkinter.Voici un exemple; je n'ai pas PIL sorte qu'il utilise une image statique, mais il illustre l'utilisation de la boucle d'événement de chercher des images chaque seconde:
vous aurez ce problème n'importe quelle trousse à outils que vous utilisez. Tous les kits graphiques besoin d'une boucle d'événements. Tous, ils ont aussi une façon de souligner les événements (par manque d'un meilleur description). Dans le cas de Tkinter, vous pouvez appeler
after
pour avoir quelque chose appelé par la boucle d'événement à un certain moment dans l'avenir. J'ai édité ma réponse pour vous donner un exemple.Merci Bryan. J'obtiens l'erreur suivante, toutes les idées ce qui en est la cause?? Fichier "LiveCam.py", à la ligne 28, dans init auto.UpdateImage(1000) Fichier "LiveCam.py", à la ligne 36, dans UpdateImage auto.de l'étiquette.configurer(image=self.image) le Fichier "/usr/lib/python2.6/lib-tk/Tkinter.py" de ligne, 1205, configurer retour auto._configure('configurer', cnf, kw) File "/usr/lib/python2.6/lib-tk/Tkinter.py" de ligne, 1196, dans _configure auto.les savoirs traditionnels.appel(_flatten((self._w, cmd)) + auto._options(cnf)) TypeError: str retourné non-chaîne de caractères (type d'instance)
Je ne sais pas. Ma conjecture est votre Get_image méthode ne retourne pas une bonne savoirs traditionnels de l'image.
oui, j'ai deviné la même. De toute façon, j'ai essayé PyQt4 et cela a fonctionné, j'ai posté ma solution ci-dessous. Je suis un peu biaisé vers Qt depuis que je l'ai utilisé pendant un long moment :D. je vais encore essayer de résoudre mon tk code u n maintenir à jour. Merci pour l'aide Bryan
OriginalL'auteur Bryan Oakley
Essayez de prendre un regard sur gstreamer. Cette est le premier résultat de google m'a donné de la recherche pour "gstreamer 1394" et cette une est la première pour "gstreamer pyqt".
Le deuxième résultat par google. Pour l'INTERFACE utilisateur de l'intégration, de regarder les autres réponses ou de regarder le [script de test ](rzuser.uni-heidelberg.de/~ge6/Programmation/download/...) en dc1394 page d'accueil.
OriginalL'auteur mg.
Depuis les bonnes réponses sont assez grand, je me sens comme je devrais poster une bibliothèque, j'ai construit spécifiquement pour cette:
En fait, c'est si image_binary est un nouveau tableau numpy à chaque fois. Si il est affecté au même endroit, juste cela devrait fonctionner:
Je sais OpenCV à peine compte que l'interface utilisateur graphique, mais c'est rapide code sage.
OriginalL'auteur SimLeek