Hallo,
ich experimentiere gerade mit OpenCV 3.0.0 unter Windows7 rum.
Ich möchte eine Kamera in einem Fenster darstellen, was auch funktioniert.
Kann man dabei das Fenster rahmenlos darstellen?
Gruß TommiB
OpenCV - rahmenloses Fenster
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
openCV ist zur Bildverarbeitung gedacht, die Bild / Video anzeige ist nur sehr rudimentär.
Du kannst aber openCVs Daten in jedem anderen GUI Toolkit verwenden und das dort lösen.
Mit wxPython habe ich sogar schon mal ein Rahmenloses Fenster gemacht mit anderen (Qt) geht das auch.
Du kannst aber openCVs Daten in jedem anderen GUI Toolkit verwenden und das dort lösen.
Mit wxPython habe ich sogar schon mal ein Rahmenloses Fenster gemacht mit anderen (Qt) geht das auch.
Hallo Sr4l,
danke für die Antwort....
Ich bin mit der objektorientierten Programmierung (Klassen etc.) nicht so bewandert...
Ich hatte mir den Beitrag : http://www.python-forum.de/viewtopic.php?f=9&t=28179 von Kaytec angesehen....
Jedoch wird dort das opencv Version 2... mit highgui (gibt es wohl in der 3.Version nicht mehr?) und Pil benutzt...
Aktuell ist 3.0.0 bei mir installiert.. Hatte gestern ein wenig rum experimentiert... Leider nur mit mäßigem Erfolg...
Ich würde gerne das Fenster rahmenlos und in der Größe anpassbar darstellen können.
Eine weiter Verarbeitung von den Bild /Bildern (ich möchte 4 Webcams bzw. Videograbber gleichzeitig darstellen - ähnlich wie eine Sicherheits-Überwachungssoftware) ist nicht notwendig.
Vielleicht hast Du, oder jemand hier im Forum, einen Hinweis, wie man das Script vom Kaytec auf die neue opencv umbauen kann?
Gruß Tommi
danke für die Antwort....
Ich bin mit der objektorientierten Programmierung (Klassen etc.) nicht so bewandert...
Ich hatte mir den Beitrag : http://www.python-forum.de/viewtopic.php?f=9&t=28179 von Kaytec angesehen....
Jedoch wird dort das opencv Version 2... mit highgui (gibt es wohl in der 3.Version nicht mehr?) und Pil benutzt...
Aktuell ist 3.0.0 bei mir installiert.. Hatte gestern ein wenig rum experimentiert... Leider nur mit mäßigem Erfolg...
Ich würde gerne das Fenster rahmenlos und in der Größe anpassbar darstellen können.
Eine weiter Verarbeitung von den Bild /Bildern (ich möchte 4 Webcams bzw. Videograbber gleichzeitig darstellen - ähnlich wie eine Sicherheits-Überwachungssoftware) ist nicht notwendig.
Vielleicht hast Du, oder jemand hier im Forum, einen Hinweis, wie man das Script vom Kaytec auf die neue opencv umbauen kann?
Gruß Tommi
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Um genau zu sein wird dort Tkinter als GUI benutzt. Dann noch openCV um die Daten von der Webcam zu bekommen. Und dann noch PIL für die Umwandlung der Bilddatei.
Der Code ist schon recht alt. Ich könnte mir vorstellen das man bereits mit opencv2 auf den PIL Part verzichten konnte, aber das ist jetzt nur so ein Gefühl, das müsste ich mir genauer anschauen.
Mit openCV3 habe ich mich noch nicht beschäftigt, weil es gerade erst released wurde und ich zur Zeit an Dingen arbeite wo ich es nicht brauche. Vielleicht hilft dir da die Doku:
http://docs.opencv.org/3.0.0/dd/d43/tut ... splay.html
Der Code ist schon recht alt. Ich könnte mir vorstellen das man bereits mit opencv2 auf den PIL Part verzichten konnte, aber das ist jetzt nur so ein Gefühl, das müsste ich mir genauer anschauen.
Mit openCV3 habe ich mich noch nicht beschäftigt, weil es gerade erst released wurde und ich zur Zeit an Dingen arbeite wo ich es nicht brauche. Vielleicht hilft dir da die Doku:
http://docs.opencv.org/3.0.0/dd/d43/tut ... splay.html
Hallo,
nachdem ich viel im Netz gesucht habe, habe ich folgendes Script hier zum Laufen bekommen:
Jedoch startet das Programm nicht immer richtig....
Nun möchte ich von zwei Kameras (cv2.VideoCapture(0)+ cv2.VideoCapture(1)) nebeneinander zeigen.
Besser noch, gleich 4 Kameras anzeigen - zwei oben und zwei darunter).
Hat da jemand eine Idee, wie ich das anstellen muss?
Gruß TommiB
nachdem ich viel im Netz gesucht habe, habe ich folgendes Script hier zum Laufen bekommen:
Code: Alles auswählen
import Tkinter as tk
import cv2
from PIL import Image, ImageTk
width, height = 400, 300
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
root = tk.Tk()
root.bind('<Escape>', lambda e: root.quit())
lmain = tk.Label(root)
lmain.pack()
def show_frame():
frame = cap.read()[1]
frame = cv2.flip(frame, 1)
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lmain.imgtk = imgtk
lmain.configure(image=imgtk)
lmain.after(2, show_frame)
show_frame()
root.mainloop()
Nun möchte ich von zwei Kameras (cv2.VideoCapture(0)+ cv2.VideoCapture(1)) nebeneinander zeigen.
Besser noch, gleich 4 Kameras anzeigen - zwei oben und zwei darunter).
Hat da jemand eine Idee, wie ich das anstellen muss?
Gruß TommiB
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Variante 1:
Du lernst wie man mehrer Bilder in Tkinter einbaut.
Am Rande: Ganz wenige nutzen hier Tk und ich vermute das die Zahl derer die öfters mit GUI Toolkits arbeitet auch überschaubar ist.
In meinem Fall kann ich die Tage an denen ich mich mit GUI Toolkits beschäftigt habe sicherlich noch an zwei Händen abzählen.
Variante 2:
Erstell ein Neues Bild mit PIL welches 2*höhe, und 2*breite eines Webcambildes hat und füge die 4 Webcambilder in dein neues Bild mit paste Funktion ein.
Alle Code den du dazu benötigst findest du hier in der ersten Antwort: https://stackoverflow.com/questions/256 ... -in-python
Du lernst wie man mehrer Bilder in Tkinter einbaut.
Am Rande: Ganz wenige nutzen hier Tk und ich vermute das die Zahl derer die öfters mit GUI Toolkits arbeitet auch überschaubar ist.
In meinem Fall kann ich die Tage an denen ich mich mit GUI Toolkits beschäftigt habe sicherlich noch an zwei Händen abzählen.
Variante 2:
Erstell ein Neues Bild mit PIL welches 2*höhe, und 2*breite eines Webcambildes hat und füge die 4 Webcambilder in dein neues Bild mit paste Funktion ein.
Alle Code den du dazu benötigst findest du hier in der ersten Antwort: https://stackoverflow.com/questions/256 ... -in-python
Hallo Sr4l,
danke, daß Du Dich nochmal gemeldet hast.
Ich habe intensiv geforscht und habe es nun hin bekommen, das gegrabbte Bild in einem pygame.surface darzustellen.
Da kann ich auch im surface die Lage jedes Bildes angeben, bevor es dargestellt wird.
Die ersten Versuche waren sehr gut.....
Zur Zeit habe ich nur mit 2 Quelle (Web-Cam und einem Grabberstick) gearbeitet. Mal gucken, ob es auch mit mehr Quellen klappt.
Ggf. muss ich auf USB3 Grabber ausweichen...
Gruß Tommi
danke, daß Du Dich nochmal gemeldet hast.
Ich habe intensiv geforscht und habe es nun hin bekommen, das gegrabbte Bild in einem pygame.surface darzustellen.
Da kann ich auch im surface die Lage jedes Bildes angeben, bevor es dargestellt wird.
Die ersten Versuche waren sehr gut.....
Zur Zeit habe ich nur mit 2 Quelle (Web-Cam und einem Grabberstick) gearbeitet. Mal gucken, ob es auch mit mehr Quellen klappt.
Ggf. muss ich auf USB3 Grabber ausweichen...
Gruß Tommi