Wie Lesen Sie den RGB-Wert eines bestimmten pixels in Python?
Wenn ich öffnen Sie ein Bild mit open("image.jpg")
, wie bekomme ich die RGB-Werte eines pixels angenommen, ich habe die Koordinaten der pixel?
Dann, wie kann ich das Umgekehrt? Beginnend mit einer leeren Grafik, 'schreiben' ein pixel mit einer bestimmten RGB-Wert?
Ich würde es vorziehen, wenn ich nicht haben, um das herunterladen von zusätzlichen Bibliotheken.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es wahrscheinlich am besten, um die Python Image Library um dies zu tun, die ich fürchte, ist ein separater download.
Der einfachste Weg, das zu tun, was Sie wollen, ist über die load () - Methode auf das Image-Objekt das gibt einen pixel-access-Objekt, das Sie manipulieren können, wie ein array:
Alternativ, Blick auf ImageDraw das gibt eine viel reichere API für das erstellen von Bildern.
pip
die war ziemlich einfach.easy_install --find-links http://www.pythonware.com/products/pil/ Imaging
pip install pillow
installieren PIL erfolgreich und ziemlich schnell (möglicherweise müssensudo
wenn nicht in einer virtualenv).pip install pillow
PyPNG - leichte PNG-decoder/encoder
Obwohl die Frage Hinweise auf JPG, ich hoffe, meine Antwort wird hilfreich sein für einige Menschen.
Hier ist, wie Lesen und schreiben von PNG-Pixel mit PyPNG Modul:
PyPNG ist ein einziges reines Python-Modul von weniger als 4000 Zeilen lang, einschließlich tests und Kommentare.
PIL ist ein umfassender imaging library, aber es ist auch deutlich schwerer.
Mit Kissen (die funktioniert auch mit Python 3.X sowie Python 2.7+), können Sie Folgendes tun:
Jetzt hast du alle pixel-Werte. Wenn es im RGB-oder einem anderen Modus gelesen werden kann
im.mode
. Dann kann man pixel(x, y)
durch:Alternativ können Sie Numpy und reshape array:
Eine komplette, einfach zu bedienende Lösung ist
Als Dave Webb sagte:
Gibt es einen wirklich guten Artikel auf wiki.wxpython.org berechtigt Arbeiten Mit Bildern. Der Artikel erwähnt die Möglichkeit der Verwendung von wxWidgets (wxImage), PIL oder PythonMagick. Ich persönlich verwendet habe, PIL und wxWidgets und sowohl Bild-manipulation relativ einfach.
Können Sie pygame's surfarray Modul. Dieses Modul hat eine 3d-pixel-array zurückgeben Methode namens pixels3d(Oberfläche). Ich habe gezeigt, Nutzung unter:
Ich hoffe, dass war hilfreich. Das Letzte Wort: Bildschirm gesperrt ist für die Lebensdauer der screenpix.
Bildbearbeitung ist ein Komplexes Thema, und es ist am besten, wenn Sie tun Verwendung einer Bibliothek. Kann ich nur empfehlen, gdmodule die einfachen Zugang zu vielen verschiedenen Bild-Formaten innerhalb von Python.
installieren von PIL mit dem Befehl "sudo apt-get install python-imaging" und das folgende Programm ausführen. Es wird gedruckt, RGB-Werte des Bildes. Wenn das Bild groß ist die Umleitung der Ausgabe in eine Datei unter Verwendung von '>', später öffnen Sie die Datei, um zu sehen, RGB-Werte
Können Sie mit der Tkinter-Modul ist die standard-Python-Schnittstelle zu Tk-GUI-toolkit, und Sie müssen es nicht extra herunterladen. Sehen https://docs.python.org/2/library/tkinter.html.
(Für Python 3, Tkinter ist in tkinter)
Hier ist, wie zu setzen, RGB-Werte:
Bekommen und RGB:
Wenn Sie schauen, um drei Ziffern in form einer RGB-Farb-code, der folgende code sollte genau das tun.
Kann dies für Sie arbeiten.