Sie läuft plattformübergreifend unter Linux und Windows (Mac kann ich nicht testen) und bietet neben Zoom, Rotation, Helligkeit- und Kontrast-Einstellungen auch eine (einfache) OCR-Funktion, Pause/Ausblenden, eine (ausblendbare) Bildübersicht, etc.
Wir fangen jetzt an, sie zu testen - aber im Vergleich zum Vorgänger ist sie deutlich schneller und stabiler geworden. Wer also Lust hat, sie mal auszuprobieren - ich freue mich über Rückmeldungen.
Installation (Konsole Linux / Windows vermutlich ähnlich, global, ohne venv):
Hi Thomas,
das Programm startet hier leider nicht:
/usr/bin/python3 /opt/pydcviewer/pydcviewer.py
Traceback (most recent call last):
File "/opt/pydcviewer/pydcviewer.py", line 54, in <module>
import tkinter # just for resolution checking
ModuleNotFoundError: No module named 'tkinter'
Ich hatte es in einer VM unter Proxmox versucht …
Viele Grüße,
Michael
Hallo Thomas,
ok, mit dem Paket würde es jetzt vermutlich starten – wenn es denn eine Webcam gäbe. Die Meldung sieht jetzt so aus:
/usr/bin/python3 /opt/pydcviewer/pydcviewer.py
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video1): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video2): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video3): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video4): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video5): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video6): can't open camera by index
Traceback (most recent call last):
File "/opt/pydcviewer/pydcviewer.py", line 1018, in <module>
c = cap()
File "/opt/pydcviewer/pydcviewer.py", line 573, in __init__
self.devices = self._detectdev()
File "/opt/pydcviewer/pydcviewer.py", line 591, in _detectdev
sys.exit('no webcam found')
NameError: name 'sys' is not defined
Wäre natürlich schön, wenn die Ausgabe der vorletzten Zeile grafisch erfolgt?!
Ich muss es später auf echter Hardware testen…
Die Software ist unter Ubuntu 20.04 installiert und nach dem Start sehe ich das Kamerabild. Was ich nicht sehe ist das Menü von dem auf Github die Rede ist.
Edit: Jetzt habe ich erkannt, was das Menü ist. Es sind die drei weißen Flecken links im Bild.
Wenn ich auf die Flecken klicke, dann wird das Objekt
Ich vermute, die drei weißen Flecken sind der Platzhalter für das Menü, wenn das Fenster zu klein ist, um das ganze Menü darzustellen (min. vertikal 680px). Kannst Du das Fenster vergrößern (bzw. mit der Taste f in den Vollbildmodus schalten)? Wenn nicht, ändere ich mal die Menü-Dimensionen.
Was nicht sein soll, ist, dass beim Platzhalter irgendetwas angeklickt werden kann - das habe ich jetzt geändert. Ein git pull sollte dieses Problem (und Michaels Fehlermeldung) lösen.
PS: In der aktualisierten Version wird jetzt versucht, eine Mindestfensterhöhe von 680 Pixeln zu erreichen - dann sollte der Menüstreifen zu sehen sein. Für geringere Auflösungen lasse ich mir ggf. noch etwas einfallen - an sich ist das Menü von der Größe frei skalierbar.
Auf der Todo-Liste steht auch ein horizontaler Menü-Streifen, mal schauen, wann ich dazu komme.
Ich hab’s auch schon so versucht: git pull origin master --allow-unrelated-histories
=>
Von https://gitlab.com/thoschi/pydcviewer
* branch master -> FETCH_HEAD
KONFLIKT (hinzufügen/hinzufügen): Merge-Konflikt in pydcviewer.py
automatischer Merge von pydcviewer.py
Also das ganze Verzeichnis nochmal weg und neu geklont …
Hallo Michael,
Mist, Du hast Recht. Ich habe gestern noch einmal neu initialisiert, weil er ein paar build-ordner mit ins tracking gepackt hatte.
Also bei der o.g. Fehlermeldung einfach nochmal den Ordner löschen und git-clone- Befehl wiederholen.
Sorry für die Mehrarbeit. Mache ich nicht nochmal
Viele Grüße
Thomas
Hej Thomas,
erst mal vielen nochmal vielen Dank für das wunderbare Programm! Ich hatte es in der alten Version während des Lockdowns gerne im Einsatz und habe sie auch in der Schule ausgerollt. Ich fand damals schon beeindruckend, wie man mit 600 Zeilen Code eine bessere Software machen kann, als die Hersteller mit ihrer Blähsoftware.
Habe nun auch die neue Version getestet - Cool, was das Ganze für Fortschritte macht.
Allerdings zeigt die neue Version nicht mehr meine Tischdokucam an.
In der alten Version wurde die erkannt:
In der neuen Version wird nur noch das Bild der Webcam angezeigt. Wenn ich per Menü weiterschalten will passiert entweder nichts oder das Programm stürzt so ab:
Traceback (most recent call last):
File "/opt/pydcviewer/pydcviewer.py", line 1072, in <module>
func()
File "/opt/pydcviewer/pydcviewer.py", line 686, in nextdev
self.resolutions = self.res_detect(self.device)
AttributeError: 'cap' object has no attribute 'res_detect'
BTW:
Anfangs hatte ich noch diesen Fehler:
python3 /opt/pydcviewer/pydcviewer.py
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video1): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video3): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video4): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video5): can't open camera by index
[ WARN:0] global /tmp/pip-req-build-eirhwqtr/opencv/modules/videoio/src/cap_v4l.cpp (890) open VIDEOIO(V4L2:/dev/video6): can't open camera by index
Traceback (most recent call last):
File "/opt/pydcviewer/pydcviewer.py", line 1075, in <module>
w.check() # make sure, window position/dimension is correct
File "/opt/pydcviewer/pydcviewer.py", line 191, in check
self.pos = self.root.winfo_x(), self.root.winfo_y()
File "/usr/lib/python3.8/tkinter/__init__.py", line 1304, in winfo_x
self.tk.call('winfo', 'x', self._w))
_tkinter.TclError: can't invoke "winfo" command: application has been destroyed
Der lässt sich aber inzwischen nicht mehr reproduzieren - python-tk war schon installiert.
Hi. Hier funktionierte die OCR-Funktion nicht auf Anhieb. Ich hatte schon tesseract-ocr-deu nachinstalliert – reicht aber offenbar nicht. Ansonsten wurde eine uralte Logitech Webcam ootb erkannt, die man unter Win10 nicht mehr verwenden kann! Super Sache!
Michael
@sedding - ich bin derzeit zuhause mit nur einer Kamera - daher kann ich das nicht wirklich testen. Hier war der Name der Funktion noch nicht geändert - teste Mal, ob es das schon war.
Mir war das mit dem Kamerafenster ganz lieb, aber die deutliche Rückmeldung bei uns war: nerviger Klick, es dauert außerdem zu lange (Auflösungstest). Daher habe ich das ganze umorganisiert.
Der andere Fehler weist darauf hin, dass das Fenster geschlossen wurde (durch was auch immer), als das Programm noch versucht hat, die Auflösung mittels Tkinter festzustellen. Das sollte im Normalbetrieb nicht vorkommen.
@Michael - ich war über einen Artikel gestolpert - OCR with just 4 lines of code. Darum wollte ich das mal probieren.
Bei mir gab es das Paket tesseract (für Linux). Unter Windows muss man die entsprechende Binary installieren (z.B. von hier - da habe ich aber keine Ahnung).
Ein guter „Hinweis“ darauf, dass es funktionieren müsste: der Befehl „tesseract“ sollte von der Konsole aufgerufen werden können. Wenn das nicht geht, fehlt etwas.
Notiz an mich selbst: Knopf ausblenden, wenn das nicht geht
Viele Grüße
Thomas
@Michael ich habe gelesen, dass bei einem ähnlichen Fehler ein sudo apt-get install python3-pyqt5 hilft. Bei mir sind die Python-QT-Sachen mitinstalliert worden als Abhängigkeit. Aber wer weiß, wann und wie.
Hilft es denn, wenn Du sie installierst?
Viele Grüße
Thomas