Ja, zwei klappen mittlerweile dank des hubs.. aber eine dritte sollte dann doch eigentlich auch kein problem mehr sein ....oder?
Posts by Okliw993
-
-
Tag 4..
ich möchte mit 3 Webcams und meinem Raspberry Pi 3+ nacheinander Bilder aufnehmen. Dazu hier ein kleiner Codeschnipsel:
Code
Display Moreimport cv2 cam1 = cv2.VideoCapture(0) while True: ret_val1, img1 = cam1.read() cv2.imshow('Livebild Kamera:', img1) if cv2.waitKey(1) == 27: break cam1.release() cv2.destroyAllWindows() cam2 = cv2.VideoCapture(1) while True: ret_val2, img2 = cam2.read() cv2.imshow('Livebild Kamera:', img2) if cv2.waitKey(1) == 27: break cam2.release() cv2.destroyAllWindows() cam3 = cv2.VideoCapture(2) while True: ret_val3, img3 = cam3.read() cv2.imshow('Livebild Kamera:', img3) if cv2.waitKey(1) == 27: break cam3.release() cv2.destroyAllWindows()
Allerdings wird immer die dritte Kamera nicht geöffnet und ich bekomme folgende Fehlermeldung:
QuoteUnable to stop the stream: Das Argument ist ungültig
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/pi/opencv-3.2.0/modules/highgui/src/window.cpp, line 304
Traceback (most recent call last):
File "/home/pi/Bildprogramm/cam_init.py", line 19, in <module>
cv2.imshow('Livebild Kamera:', img2)
cv2.error: /home/pi/opencv-3.2.0/modules/highgui/src/window.cpp:304: error: (-215) size.width>0 && size.height>0 in function imshowAlle 3 Kameras einzeln funktionieren. Ich habe die Kameras an einem seperaten Hub mit eigener Stromversorgung angeschlossen. Und kann mir leider nicht erklären weshalb ich keine 3 Kameras nacheinander nutzen kann..
-
Guten Morgen,
Ich arbeite nur seit 3 tagen ununterbrochen an dem problem... 2 Kameras sind keine Herausvorderung. Allerdings klappt es mit einer dritten dann schon nicht mehr. ich spreche die Kameras nacheinander an. Kann mir irgendwer noch helfen?
-
Hallo zusammen,
Ich nutze ein Raspberry Pi 3, Python 3, opencv und eine Webcam um Bilder aufzunehmen. Das klappt soweit ganz gut. Jetzt möchte ich meinen Code gerne soweit erweitern, dass ich zusätzlich eine zweite oder sogar dritte Kamera anschließen kann. Alle Kameras sollen möglichst zeitgleich Fotos aufnehmen.
Mein Problem ist, dass sobald ich eine zweite Webcam mit einbinde, sich mein Programm aufhängt und kein Bild mehr gespeichert wird. Meine Recherche in Google ergab, dass die USB-Bandbreite des RPi's wohl zu gering ist um mehrere Kameras zu betreiben.. Kann mir diesbezüglich jemand weiterhelfen? Würde mich sehr freuen weil ich da echt nicht weiterkomme...
Gruß, okliw993 -
Funktioniert wunderbar!
Eine Frage hätte ich trotzdem noch: Besteht die Möglichkeit, dass Eingabefenster im Vordergrund zu behalten. Jedes mal öffnet sich die Tastatur über dem Eingabefenster, sodass man diese erst zur Seite ziehen muss um das Eingabefenster zu sehen..
Gruß, okliw993
-
Mit kill() und terminate() habe ich es schon probiert - das klappt nicht.
Den Code versuche ich mal bei mir umzusetzen - erstmal Danke!
-
-
-
Danke für die Antworten, aber wie schon gesagt, ist die Tastatur bereits installiert und funktioniert auch. Mein Problem liegt darin, diese automatisch zu öffnen, sobald sie benötigt wird.
Kann mir dabei jemand helfen?
-
,Hallo zusammen,
Ich verwende ein Raspberry Pi 3 mit einem Touchdisplay. Im Ablauf meines Programmes wird man zwischendurch nach einer Tastatureingabe gefragt. Dafür habe ich das matchbox-keyboard installiert. Jedoch ist es sehr umständlich die Tastatur jedes mal händisch zu öffnen.
Gibt es eine Möglichkeit, dass die Bildschirmtastatur automatisch angezeigt wird, sobald eine Eingabe erfolgen soll? Bzw sobald in ein Eingabefeld geklickt wird?
Im Netz und auch in der Suche habe ich keine gescheiten Lösungen gefunden...
Ich hoffe ihr könnt mir weiter helfen..
Gruß, okliw993
-
Ich verstehe den Nutzen von Cronjob dabei noch nicht... Die Bilder sollen sofort aufgenommen werden wenn eine Lichtschranke unterbrochen wird.
Ich habe spaßeshalber mal das Programm gestartet und zuvor die Kamera abgezogen. Es werden trotzdem Dateien angelegt, allerdings auch mit 0 Byte.. kann es sein das ab und zu die 'bestromung' der Kamera, durch den Raspberry Pi, zu langsam ist und deshalb leere Dateien geschrieben werden?
-
Vor dem Speichern kann ich die Dateigröße nicht abfragen, da ich für den getsize -Befehl den Namen und Pfad der Datei haben muss. Cronjob kommt glaube ich nicht in Frage, da ich die Bilder in unregelmäßigen Abständen aufnehme. Oder habe ich Cronjob falsch verstanden?
Gruß, okliw993
-
Damit werde ich es mal probieren - Danke!
Aber mein ursprüngliches Hauptproblem, das Bilddatein sporadisch keine Daten haben habe ich noch nicht gelöst bekommen... google hat mir da bislang auch nicht weiterhelfen können. Kann mir evtl jemand eine konkrete Anweisung geben was ich machen kann?
Weil wie befürchtet kommt es sporadisch dazu, dass sich die while-Schleife aufhängt...
Wäre echt dankbar wenn ihr noch ein paar Tipps hättet..
Gruß, okliw993
-
also quasi eine Variable definieren welche ich True oder False setze?
Gruß, okliw993
-
Guten Morgen,
QuoteIch würde das ja eher zwischen 14 und 15 setzen.
Ich probiere das mal aus.
QuoteNein, QT zickt nicht rum. Die kreierst damit "lediglich" eine Endlosschleife, weswegen die GUI nicht mehr reagiert
Ok das meinte ich im Grunde genommen. Habe mich wohl falsch ausgedrückt.
QuoteDu kannst jetzt die while-Schleife abbrechen
Das ist ja auch mein Ziel, dass solange Bilder aufgenommen werden, bis die Abbruchbedingung erfüllt ist. Aber sind boolsche Werte nicht True und false?
MfG okliw993
-
Hallo und danke für deine Tipps. Ich werde denen mal nachgehen.
Was meinen Programmierstil angeht, den bitte ich zu entschuldigen. Ich bin noch am lernen und versuche mich jedes mal zu verbessern. In Python bin ich ein absoluter Neuling weil ich bisher mehr Erfahrungen in Java gesammelt habe. Aber ich werde deine Verbesserungen selbstverständlich umsetzen.
- KennNr ist ein String, da ich auch Barcodes mit Buchstaben einlese.
-path2, path3 etc sollen noch kommen wenn mehr Kameras eingebunden werden.
-ich kann leider kein while True nehmen weil sonst die Qt rumzickt.
- Fehler in Zeile 13 hatte ich noch nicht bemerkt, Danke!
Für den 'sleep' hatte ich eine 10 eingesetzt und diesen zwischen Zeile 15 und 16 eingebaut.
Gruß, okliw993
Hallo,
Selbstverständlich würde ich am liebsten die Fehlerursache beseitigen. Um das zu tun müsste ich aber wissen wo diese liegt und deshalb frage ich hier ja?!
Der Workaround hat mir persönlich trotzdem vorerst geholfen. Hast du denn eine Idee wo die Fehlerursache liegt?
-
Also ich hab's jetzt in Python übersetzt und es funktioniert. Die Abfrage der Dateigröße war ein super Tipp! Riesen Dank dafür! Hier noch mal mein Code..
Python
Display Moreclass Foto(QMainWindow): def __init__(self): super().__init__() self.Scanneraufnahme() def Scanneraufnahme(self): KennNr = '0' path1 = '/home/pi/Bildprogramm/Bilder/Kamera1/' i = 0 pfad = path1 while i < 1000000: KennNr, result = QInputDialog.getText(self,'Scanneraufnahme','Scanneraufnahme läuft:') if(KennNr != 0): cam = cv2.VideoCapture(0) ret_val, img = cam.read() cv2.imwrite(pfad + KennNr +'.jpg',img) while os.path.getsize(pfad + KennNr +'.jpg') < 1: os.remove(pfad + KennNr +'.jpg') cam = cv2.VideoCapture(0) ret_val, img = cam.read() cv2.imwrite(pfad + KennNr +'.jpg',img) KennNr = '0' if not result: i = 1000001 if __name__=="__main__": app=QApplication(sys.argv) app.setStyle('Fusion') F = Foto() sys.exit(app.exec())
Eine Frage hätte ich trotzdem noch. Meine Kamera öffnet sich leider sehr langsam. Das hat zur Folge, dass die Bilder sehr hell sind, da das Foto aufgenommen wird bevor sich der Kontrast richtig eingestellt hat. Ich habe es schon mit nem time.sleep() versucht zu lösen aber das klappt nicht. Vielleicht hast du oder Tell oder Linus da noch eine Idee?
Gruß, okliw993
-
Da hast du Recht. Ich habe gerade noch mal drei Bilder aufgenommen wobei Eines die besagte Fehlermeldung beim Öffnen anzeigt. Die Gesamtgröße dieser Datei beträgt 0 Bytes. Die anderen Beiden haben 35 und 24 Bytes...
Kannst du mir sagen wo mein Fehler ist und wie ich das Problem lösen kann?
Und warum die Bilder so unterschiedlich groß sind?
Gruß und Danke, okliw993
-
Hallo zusammen,
Ich habe ein Problem, bei welchem ich eure Hilfe / euer Fachwissen gebrauchen könnte. Ich nehme mittels eines Raspberry Pi 3, einer Webcam und eines Scanners Bilder auf. Jedes mal wenn ein Barcode gescannt wird, soll ein Foto mit der Webcam aufgenommen werden. Das Funktioniert größtenteils auch ganz gut. Der Code ist in Python 3 geschrieben.
Python
Display Moreclass Scanneraufnahme(QMainWindow): def __init__(self): super().__init__() self.machFoto() def machFoto(self): KennNr = '0' path1 = '/home/pi/Bildprogramm/Bilder/Kamera1/' i = 0 while i < 1000000: KennNr, result = QInputDialog.getText(self,'Scanneraufnahme','Scanneraufnahme läuft:') if(KennNr != 0): cam = cv2.VideoCapture(0) ret_val, img = cam.read() cv2.imwrite(path1 + KennNr +'.jpg',img) KennNr = '0' if not result: i = 1000001
Mein Problem ist allerdings, dass sporadisch Bilder keine Daten enthalten. Das heißt: Wenn ich auf die Bilder im Ordner zugreife und über die Pfeiltasten mich durchklicke, sind sporadisch einzelne Bilder mit folgender Fehlermeldung dazwischen:
QuoteBilddatei>>/home/pi/Bildprogramm/Bilder/Kamera1/1234567.jpg<< enthält keine Daten
Ich hoffe mir kann jemand helfen das Problem zu lösen. Die Suchfunktion und Google konnten mir leider nicht weiterhelfen.
Über ein paar nützliche Tipps oder Hinweise wäre ich sehr dankbar
.
Gruß, okliw993
-
Ok, trotzdem vielen Dank für deine Hilfe!