Moin....
ich bin ein Python Anfänger und wollte mich damit mal beschäftigen.
Mein ziel ist es, unter einem Pi3, ein Programm zu haben das es mit ermöglicht die Farbe die sich unter dem Mauszeiger ist zu erkennen und zu notieren.
Im Sinne von :
35 Sekungen Warten
Farbe erkennen -> Notieren
35 Sekunden Warte
Ich hoffe jemand kann mir weiter helfen
Farben automatisch erkennen und zuordnen
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Da habe ich schon was dazu geschrieben und da gibt es auch schon eine Musterlösung in C.
Gruß, noisefloor
Genau die gleiche Frage gibt's ja auch schon bei ubuntuusers.de: Link zum Thread.ch hoffe jemand kann mir weiter helfen
Da habe ich schon was dazu geschrieben und da gibt es auch schon eine Musterlösung in C.
Gruß, noisefloor
@e1st33:
Was gefällt dir an der Antwort von Vain aus dem uu.de-Forum nicht? Falls die Lösung zwingend in Python sein soll: Es gibt eine Anbindung zur Xlib auch für Python (findet man unter den entsprechenden Suchbegriffen). Ansonsten könnte man ein GUI-Framework benutzen. Ich weiß nicht, inwieweit Qt oder ähnliche Bibliotheken dazu fähig sein. Natürlich würde dies aber die Abhängigkeiten weiter aufblähen. Die Lösung in C wäre deutlich leichtgewichtiger, da die Xlib beim Raspi meines Wissen vorinstalliert ist.
Was gefällt dir an der Antwort von Vain aus dem uu.de-Forum nicht? Falls die Lösung zwingend in Python sein soll: Es gibt eine Anbindung zur Xlib auch für Python (findet man unter den entsprechenden Suchbegriffen). Ansonsten könnte man ein GUI-Framework benutzen. Ich weiß nicht, inwieweit Qt oder ähnliche Bibliotheken dazu fähig sein. Natürlich würde dies aber die Abhängigkeiten weiter aufblähen. Die Lösung in C wäre deutlich leichtgewichtiger, da die Xlib beim Raspi meines Wissen vorinstalliert ist.
Das C-Programm aus dem uu-Forum leicht abgeändert, so dass kein Bildschirmfoto vom *ganzen* Bildschirm gemacht wird, und nach Python portiert:
Code: Alles auswählen
#!/user/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
from time import sleep
from Xlib import X
from Xlib.display import Display
def main():
display = Display()
try:
root = display.screen().root
while True:
pointer = root.query_pointer()
image = root.get_image(
pointer.root_x, pointer.root_y, 1, 1, X.ZPixmap, 0xffffffff
)
pixel = map(ord, image.data)
print('Color under pointer (BGRA format):', pixel)
while display.pending_events():
display.next_event()
sleep(1)
finally:
display.close()
if __name__ == '__main__':
main()
Hallo zusammen,
ich bin gerade auf das Thema hier gestoßen.
Kann mir jemand dazu weiter helfen?
Und zwar habe ich das mal so ausprobiert. funktioniert auf dem Pi ganz gut, leider ist der mit der Rechenleistung zu schnell am Ende.
Jetzt habe ich es probiert, über Python von Windows aus zu starten.
Leider klappt das da nicht. Er gibt mir immer eine Fehlermeldung.
Kann mir wer sagen wo das Problem ist?
Lg
ich bin gerade auf das Thema hier gestoßen.
Kann mir jemand dazu weiter helfen?
Und zwar habe ich das mal so ausprobiert. funktioniert auf dem Pi ganz gut, leider ist der mit der Rechenleistung zu schnell am Ende.
Jetzt habe ich es probiert, über Python von Windows aus zu starten.
Leider klappt das da nicht. Er gibt mir immer eine Fehlermeldung.
Kann mir wer sagen wo das Problem ist?
Lg
-
- User
- Beiträge: 168
- Registriert: Montag 9. Mai 2016, 09:14
- Wohnort: Berlin
Hallo!
Wenn du uns verrätst wie die Fehlermeldung lautet, können wir vielleicht helfen.
Wenn du uns verrätst wie die Fehlermeldung lautet, können wir vielleicht helfen.
@Adlerauge: Wieso ist der mit der Rechenleistung zu schnell am Ende? Im Sekunden-Intervall die Farbe eines Pixels auszulesen dürfte selbst das allererste Raspi-Modell nicht wirklich fordern.
Unter Windows erfolgt die Anzeige nicht über X, also kann man da mit `Xlib` auch nichts wollen. Da musst Du Dir irgendwas mit der Windows-API basteln.
Unter Windows erfolgt die Anzeige nicht über X, also kann man da mit `Xlib` auch nichts wollen. Da musst Du Dir irgendwas mit der Windows-API basteln.
Hallo zusammen,
sry das ich mich so spät melde, die 'Woche wahr recht hart
Also Fehler ist
Traceback (most recent call last):
File "C:\Users\Adlerauge\Desktop\123 test ohne time.py", line 5, in <module>
from Xlib import X
ImportError: No module named Xlib
sry das ich mich so spät melde, die 'Woche wahr recht hart
Also Fehler ist
Traceback (most recent call last):
File "C:\Users\Adlerauge\Desktop\123 test ohne time.py", line 5, in <module>
from Xlib import X
ImportError: No module named Xlib
Code: Alles auswählen
from __future__ import absolute_import, division, print_function
from time import sleep
from Xlib import X
from Xlib.display import Display
def main():
display = Display()
try:
root = display.screen().root
while True:
pointer = root.query_pointer()
image = root.get_image(
372, 739, 1, 1, X.ZPixmap, 0xffffffff
)
pixel = map(ord, image.data)
print(pixel)
while display.pending_events():
display.next_event()
sleep(50)
finally:
display.close()
if __name__ == '__main__':
main()
Steht doch alles da, du hast das Xlib-Modul nicht installiert, was aber auch nicht verwunderlich ist .. weil, wie BlackJack das schon gesagt hat, es gibt keinen Xserver auf Windows, deshalb auch der Verweis auf die Windows-API.Adlerauge hat geschrieben:Also Fehler ist
Traceback (most recent call last):
File "C:\Users\Adlerauge\Desktop\123 test ohne time.py", line 5, in <module>
from Xlib import X
ImportError: No module named Xlib
the more they change the more they stay the same