GET1033 Python-codierter Bildprozessor - Gunook
GET1033 Python-codierter Bildprozessor - Gunook
Anonim
GET1033 Python-codierter Bildprozessor
GET1033 Python-codierter Bildprozessor

In diesem Projekt geht es darum, meinen eigenen Python-codierten Bildprozessor für mein Modul GET1033 Exploring Computational Media Literacy zu erstellen. Zuerst muss der Benutzer ein eigenes Foto eingeben und dann die gewünschten Filter auswählen. Ich habe 9 Filter erstellt, die sind: Das Eingabebild anzeigen, Spiegeln, Hinter Balken setzen, Hinter transparenten Balken setzen, Kreisbild, Unschärfe, Drehung, Farbe ändern und Photoshop. Nachdem Sie eines davon ausgewählt haben, werden die Effekte auf das Ausgabebild übertragen. Wie im Bild gezeigt, ist es der Filter zum Ändern der Farbe, bei dem ich die grünen Farbpixel im Bild erkenne und sie in rosa Farbe umwandele.

Schritt 1: Herstellungsprozess

Herstellungsprozess
Herstellungsprozess

Schritt 1: Laden Sie Python hier herunter!

Schritt 2: Codieren Sie es!

Zuerst habe ich ein paar Pakete mit vorcodierten Funktionen importiert, die im Code verwendet werden können. Die importierten Pakete sind Scipy, Matplot und Numpy.

Für Scipy habe ich Miscellaneous Routines (MISC) und Multi-Dimentional Image Processing (NDIMAGE) importiert. MISC dient zum Lesen und Speichern des Bildes, während NDIMAGE zum Durchführen eines Gaußschen Filters und zum Drehen dient.

Für Matplotlib ist es eine Bibliothek zum Zeichnen von Graphen in Python, die eine MATLAB-ähnliche Schnittstelle bietet.

Für Numpy ist es eine Bibliothek, die große, mehrdimensionale Arrays und Matrizen unterstützen kann. Numpy ist wichtig, weil es mir ermöglicht, das Array von Rot, Grün und Blau (RGB) der Bilder effizient zu bearbeiten, wenn ich das Array addiere oder multipliziere. Zum Beispiel A = [0, 1, 2] und bei Vorhandensein von Numpy A*2 = [0, 2, 4] anstelle von A*2 = [0, 1, 2, 0, 1, 2].

Wenn ich an dem Filter für Farbwechsel arbeite, versuche ich, das grüne Haar des Mädchens in rosa Farbe umzuwandeln. Also habe ich die grünen Farbpixel im Bild erkannt und mit (2, 0,2, 0,8) multipliziert. So bekomme ich statt der eigentlichen grünen Haare ein rosafarbenes Haarmädchen.

Was Photoshop betrifft, versuche ich, den grünen Hintergrund im Avengers-Bild durch ein Bild von NUS zu ersetzen. Also multiplizierte ich 0 mit allen grünen Pixeln und addierte dann die Pixel des Bildes von NUS zu den grünen Pixeln. Dadurch bekomme ich dann ein Bild von Avengers in NUS.

Ich habe meinen Code auch auf GitHub angehängt und Sie können ihn hier herunterladen!

Schritt 2: Wie funktioniert es?

Wie es funktioniert?
Wie es funktioniert?

Das Flussdiagramm ist beigefügt, um zu zeigen, wie der gesamte Code funktioniert!

1. Zuerst wird der Benutzer aufgefordert, ein Bild seiner Wahl einzugeben. 2. Es wird dann die Liste der Filter angezeigt, aus denen der Benutzer auswählen kann. 3. Wenn der Benutzer '1' bis '9' eingegeben hat, wird das Bild nach jedem Filter verarbeitet und ausgegeben.4. Wenn der Benutzer 'R' eingegeben hat, wird das gesamte Programm zurückgesetzt und der Benutzer wird aufgefordert, ein Bild erneut hochzuladen.5. Wenn der Benutzer 'Q' eingegeben hat, verlässt das Programm die Schleife.

Schritt 3: Was macht es?

In diesem Projekt gibt es insgesamt 9 Filter, die ich erstellt habe, nämlich

1. Zeigen Sie das Eingabebild an - Um das hochgeladene Bild anzuzeigen

2. Spiegelbild – Eine reflektierte Vervielfältigung eines Objekts, die jedoch in der Richtung umgekehrt ist

3. Hinter Balken setzen – Einfügen von schwarzen vertikalen Balken mit einer Breite und einem Abstand von 50 Pixeln.

4. Hinter transparenten Balken setzen – Einfügen von transparenten vertikalen Balken mit einer Breite und einem Abstand von 50 Pixeln

5. Kreisbild - Um einen Kreis in der Mitte des Bildes zu machen

6. Unschärfe – Um das Bild unscharf zu machen

7. Drehung - Um das Bild um 45 Grad zu drehen

8. Farbänderung - Um die grüne Farbe in die rosa Farbe zu ändern

9. Photoshop - Um einen Teil eines Bildes durch ein anderes Bild zu ändern

Schritt 4: Warum habe ich es geschafft?

Zuvor war ich gespannt, wie Instagram und Snapchat Filter für die Bilder entwickelt haben, die sie so interessant gemacht haben. Nach der Vorlesung und dem Tutorial zum Thema Augmented Reality wollte ich etwas dazu machen, aber ich möchte mit der Bildverarbeitung beginnen, da ich schwach in der Programmierung bin und Python-Codierung lernen möchte.

Schritt 5: Verbesserungen und was werden die zukünftigen Versionen tun?

Eine der Verbesserungen für dieses Projekt besteht darin, mit Python eigene Gesichtsfilter in Live-Videos zu erstellen. Ich habe versucht, dies zu codieren, aber ich konnte keine davon aufgrund mangelnder Programmierkenntnisse und Zeitbeschränkung erreichen. Abgesehen davon kann der Bildprozessor „intelligenter“sein, da er die Farben automatisch erkennt und nur die gewünschten Teile ändert. Es gibt eine Zeit, in der ich versuche, das schwarze Haar einer Person in eine andere Farbe zu ändern. Am Ende ändere ich sowohl die Augen- als auch die Haarfarbe in Blau, wodurch das Bild sehr seltsam aussieht. Ich hoffe, dass ich mein eigenes Gesicht kreieren kann