Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiert man PIL-Bilder in NumPy-Arrays für eine nahtlose Pixelmanipulation?

Wie konvertiert man PIL-Bilder in NumPy-Arrays für eine nahtlose Pixelmanipulation?

Linda Hamilton
Freigeben: 2024-11-24 08:59:12
Original
217 Leute haben es durchsucht

How to Convert PIL Images to NumPy Arrays for Seamless Pixel Manipulation?

Konvertieren von PIL-Bildern in NumPy-Arrays für eine verbesserte Pixelmanipulation

Frage:

Wie kann ich ein PIL-Bild effizient konvertieren? in ein NumPy-Array für nahtlose pixelweise Transformationen? Während die Konvertierung von einem PIL-Bild in ein NumPy-Array mit numpy.array(pic.getdata()) unkompliziert ist, ist der umgekehrte Vorgang zum erneuten Laden des geänderten Arrays als PIL-Bild nicht so intuitiv.

Antwort:

Der Schlüssel zum erfolgreichen Aktualisieren eines PIL-Bildes aus einem modifizierten NumPy-Array liegt im Verständnis des erwarteten Datenformats. Beim Abrufen des Arrays aus dem Bild mit numpy.array(pic.getdata()) ist die resultierende Matrix zunächst zweidimensional (Zeilen und Spalten). Für die effiziente Manipulation von Pixeln ist jedoch ein dreidimensionales Array mit Zeilen, Spalten und RGB-Werten erforderlich.

Lösung:

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. PIL-Bild in NumPy-Array konvertieren:Verwenden numpy.array(pic), um ein dreidimensionales NumPy-Array mit dem gewünschten Format zu erhalten.
  2. Pixel im NumPy-Array bearbeiten: Führen Sie die gewünschten pixelweisen Änderungen am NumPy-Array durch.
  3. Geändertes NumPy-Array im PIL-Bild aktualisieren: Um die ursprünglichen Pixel durch die geänderten Werte zu ersetzen, verwenden Sie pic.putdata(pix) oder erstellen Sie ein neues PIL-Bild mit Image.fromarray(pix).

Zusätzliche Hinweise:

  • Stellen Sie sicher, dass alle Änderungen am NumPy-Array werden innerhalb des richtigen Farbbereichs vorgenommen (z. B. 0-255 für 8-Bit-RGB). Bilder).
  • Bei der Konvertierung von NumPy-Arrays in PIL-Bilder kann das Umformen oder Reduzieren des Arrays erforderlich sein, damit es dem erwarteten Format entspricht.

Das obige ist der detaillierte Inhalt vonWie konvertiert man PIL-Bilder in NumPy-Arrays für eine nahtlose Pixelmanipulation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage