Die schnelle Python-GUI zur Anzeige von live-Bildern von der Kamera
Ich versuche, die Anzeige von live-Bildern aus meinem 1394-Kamera.
Derzeit mein code ist in der Lage, Bilder zu erhalten in einer Schleife von der Kamera und ich war auf der Suche für die schnelle GUI, die sich dynamisch aktualisieren (als separater thread). Ich kann das in PyQt vielleicht mit QThreads aber gibt es eine Empfehlung oder ein schneller Weg, dies zu tun??
Hier ist mein code
#Schleife erfassen von Bildern von der Kamera
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
Danke.
InformationsquelleAutor blueskin | 2010-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier wxPython - code, mit dem es zu tun...
Welche version von wxPython verwenden Sie? Welche Plattform?
Ubuntu 10.04; wxPython 2.8; Python 2.6
wxPython 2.8.10? Oder niedriger?
Ich bin mit Ubuntu 10.04, Python 2.6 und wx in der version
2.8.10.1 (gtk2-unicode)
und es funktioniert.InformationsquelleAutor FogleBird
Ich dachte, ich würde versuchen PyQt4 imageviewer.py Beispiel-und es funktionierte für mich.
Vielen Dank für Ihre Hilfe Jungs.
Hier ist mein veränderter code:
InformationsquelleAutor blueskin
Empfehle ich die Verwendung von Tkinter, da es bereits Bestandteil von python. Ich habe noch nie verwendet, PIL, aber eine schnelle google zeigt, dass es einfach zu bedienen, PIL-Bildern in Tk widgets (über die pil.ImageTk.PhotoImage () - Methode).
Wenn Sie bereits eine Tkinter-widget einrichten, um die Bilder anzuzeigen (ein Label-widget funktioniert) alles, was Sie tun müssen, ist, vereinbaren Sie für das Bild aktualisiert werden jede Sekunde oder so. Sie können dies tun, indem Sie mit der
after
Befehl von tkinter.Ist hier ein Beispiel; ich nicht haben, PIL, so verwendet er ein statisches Bild, aber es zeigt, wie Sie die event-loop zu Holen Bilder jede Sekunde:
Sie haben dieses problem, egal was-toolkit, die Sie verwenden. Alle GUI-toolkits müssen eine Ereignis-Schleife. Sie alle haben auch eine Weise, einwerfen Veranstaltungen (aus Mangel an eine bessere Beschreibung). Im Fall von Tkinter ist, rufen Sie
after
um etwas zu haben, als durch die event-Schleife, die irgendwann in der Zukunft. Ich habe bearbeitet Sie meine Antwort zu geben, die Sie als ein Beispiel.Dank Bryan. Ich bekomme die folgende Fehlermeldung, jemand eine Idee was die Ursache dafür ist?? Datei "LiveCam.py", line 28, in init selbst.UpdateImage(1000) - Datei "LiveCam.py", line 36, in UpdateImage selbst.label.configure(image=self.image) File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1205, konfigurieren return self._configure('konfigurieren', cnf, kw) File "/usr/lib/python2.6/lib-tk/Tkinter.py", Zeile 1196, in _configure selbst.tk.call(_flatten((self._w, cmd)) + self._options(cnf)) TypeError: str zurückgegeben non-string (Typ Instanz)
Ich weiß es nicht. Meine Vermutung ist, Ihr Get_image-Methode ist nicht wieder eine richtige tk Bild.
ya, ich dachte das gleiche. Anyways, ich habe versucht, PyQt4 und es hat funktioniert, ich habe meine Lösung unten. Ich bin eigentlich ein wenig voreingenommen gegenüber Qt, seit ich habe gewesen benutze es für eine lange Zeit :D. ich werde noch versuchen, die Befestigung meiner tk-code n u halten aktualisiert. Danke für die Hilfe, Bryan
InformationsquelleAutor Bryan Oakley
Versuchen Sie, einen Blick auf gstreamer. Diese ist das erste google-Ergebnis hat mir die Suche nach "gstreamer-1394" und diese eine ist die erste "gstreamer pyqt".
zweites Ergebnis von google. Für die UI-integration, suchen die anderen Antworten oder schau dir die [test-Skript ](rzuser.uni-heidelberg.de/~ge6/Programmierung/download/...) an der dc1394 home page.
InformationsquelleAutor mg.
Da die guten Antworten sind ziemlich groß, ich habe das Gefühl, ich sollte post, eine Bibliothek, die ich speziell für dieses:
Eigentlich, dass, wenn image_binary ist eine neue numpy-array jedes mal. Wenn es zugeordnet ist, die gleiche location, dann einfach dies funktionieren sollte:
Ich weiß OpenCV kaum zählt als eine GUI, aber das ist quick code weisen.
InformationsquelleAutor SimLeek