Inhoudsopgave:

GET1033 Python gecodeerde beeldprocessor - Ajarnpa
GET1033 Python gecodeerde beeldprocessor - Ajarnpa

Video: GET1033 Python gecodeerde beeldprocessor - Ajarnpa

Video: GET1033 Python gecodeerde beeldprocessor - Ajarnpa
Video: BTT SKR2 -FluiddPi and Klipper Firmware Install 2024, November
Anonim
GET1033 Python gecodeerde beeldprocessor
GET1033 Python gecodeerde beeldprocessor

Dit project gaat over het maken van mijn eigen python-gecodeerde beeldprocessor voor mijn module, GET1033 Exploring Computational Media Literacy. Eerst moet de gebruiker een eigen foto invoeren en vervolgens de gewenste filters selecteren. Ik heb 9 filters gemaakt die zijn: Toon de invoerafbeelding, Spiegel, Zet achter balk, Zet achter transparante balk, Cirkelafbeelding, Vervaging, Rotatie, Kleur wijzigen en Photoshop. Nadat u er een hebt geselecteerd, heeft de uitvoerafbeelding de effecten. Zoals op de afbeelding te zien is, is dit het filter voor het veranderen van kleur waarbij ik de groene kleurpixels in de afbeelding detecteer en deze omzet in roze kleur.

Stap 1: Proces om het te maken

Proces om het te maken
Proces om het te maken

Stap 1: Download Python vanaf hier!

Stap 2: Codeer het!

Allereerst heb ik een paar pakketten geïmporteerd met een voorgecodeerde functie die beschikbaar is om in de code te gebruiken. De pakketten die ik heb geïmporteerd zijn Scipy, Matplot en Numpy.

Voor Scipy heb ik Miscellaneous Routines (MISC) en Multi-dimentional Image Processing (NDIMAGE) geïmporteerd. MISC is voor het lezen en opslaan van de afbeelding, terwijl NDIMAGE is bedoeld om Gaussiaans filter uit te voeren en te roteren.

Voor Matplotlib is het een bibliotheek voor het plotten van grafieken in Python die een MATLAB-achtige interface biedt.

Voor Numpy is het een bibliotheek die grote, multidimensionale arrays en matrices kan ondersteunen. Numpy is belangrijk omdat het me in staat stelt om de array van rood, groen en blauw (RGB) van de afbeeldingen efficiënt te bewerken wanneer ik de array optel of vermenigvuldig. Bijvoorbeeld, A = [0, 1, 2] en met de aanwezigheid van Numpy, A*2 = [0, 2, 4] in plaats van A*2 = [0, 1, 2, 0, 1, 2] te krijgen.

Wanneer ik aan het filter voor Kleurverandering werk, probeer ik het groene haar van het meisje om te zetten in roze. Dus wat ik deed, was de groene kleurpixels in de afbeelding detecteren en ze vermenigvuldigen met (2, 0,2, 0,8). Zo krijg ik een meisje met roze haar in plaats van het eigenlijke groene haar.

Wat betreft de Photoshop, ik probeer de groene achtergrond in de Avengers-afbeelding te vervangen door een afbeelding van NUS. Dus wat ik deed was 0 vermenigvuldigen met alle groene pixels en dan de pixels van de afbeelding van NUS optellen bij de groene pixels. Hierdoor krijg ik een foto van Avengers in NUS.

Ik heb mijn code ook bijgevoegd op GitHub en je kunt hem hier downloaden!

Stap 2: Hoe werkt het?

Hoe het werkt?
Hoe het werkt?

Het stroomschema is bijgevoegd om te laten zien hoe de hele code werkt!

1. Eerst wordt de gebruiker gevraagd een afbeelding naar keuze in te voeren. 2. Vervolgens wordt de lijst met filters weergegeven waaruit de gebruiker kan kiezen. 3. Als de gebruiker '1' tot '9' heeft ingevoerd, wordt de afbeelding verwerkt en uitgevoerd volgens elk filter.4. Als de gebruiker 'R' heeft ingevoerd, wordt het hele programma gereset en wordt de gebruiker gevraagd om opnieuw een foto te uploaden.5. Als de gebruiker 'Q' heeft ingevoerd, zal het programma de lus verlaten.

Stap 3: Wat doet het?

In dit project zijn er in totaal 9 filters die ik heb gemaakt, namelijk:

1. Toon de invoerafbeelding - Om de afbeelding te tonen die is geüpload

2. Spiegelbeeld - Een gereflecteerde verdubbeling van een object maar omgekeerd in de richting

3. Zet achter balk - Zwarte verticale balken invoegen met een breedte en afstand gelijk aan 50 pixels.

4. Zet achter transparante balk - Transparante verticale balken invoegen met een breedte en afstand gelijk aan 50 pixels

5. Cirkelafbeelding - Om een cirkel in het midden van de afbeelding te maken

6. Vervaging - Om de afbeelding te vervagen

7. Rotatie - Om de afbeelding 45 graden te draaien

8. Verandering van kleur - Om de groene kleur te veranderen in roze kleur

9. Photoshop - Een deel van een afbeelding wijzigen met een andere afbeelding

Stap 4: Waarom heb ik het gemaakt?

Voorheen was ik benieuwd hoe Instagram en Snapchat met filters kwamen voor de foto's die ze zo interessant maakten. Na de lezing en tutorial over Augmented Reality wilde ik er iets mee doen, maar ik wil graag beginnen bij de basis, namelijk beeldverwerking, omdat ik zwak ben in programmeren en graag Python-codering wil leren.

Stap 5: Verbeteringen en wat zullen de toekomstige versies doen?

Een van de verbeteringen voor dit project is het maken van mijn eigen gezichtsfilters in live video's met Python. Ik heb geprobeerd dit te coderen, maar ik kon geen van hen bereiken vanwege een gebrek aan programmeerkennis en tijdsdruk. Afgezien daarvan kan de beeldprocessor 'slimmer' zijn, waarbij hij automatisch de kleuren kan detecteren en alleen de delen kan veranderen die we willen. Er is een keer dat ik probeer het zwarte haar van een persoon te veranderen in een andere kleur. Uiteindelijk verander ik zowel de oog- als haarkleur in blauw, waardoor de foto er heel raar uitziet. Ik hoop dat ik mijn eigen gezicht kan creëren

Aanbevolen: