Inhoudsopgave:
- Stap 1: Proces om het te maken
- Stap 2: Hoe werkt het?
- Stap 3: Wat doet het?
- Stap 4: Waarom heb ik het gemaakt?
- Stap 5: Verbeteringen en wat zullen de toekomstige versies doen?
Video: GET1033 Python gecodeerde beeldprocessor - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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?
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:
Mappen synchroniseren met Python: 5 stappen
Mappen synchroniseren met Python: deze instructable laat je zien hoe je twee mappen (en alle mappen daarin) synchroon kunt houden, zodat de ene een directe kopie van de andere is. Ideaal voor het back-uppen van werk zowel lokaal, naar een cloud/netwerkserver of een USB-stick. Geen ervaring met programmeren is n
Python-introductie - Katsuhiko Matsuda & Edwin Cijo - Basis: 7 stappen
Python Introductie - Katsuhiko Matsuda & Edwin Cijo - Basis: Hallo, we zijn 2 studenten in MYP 2. We willen je de basis leren van het coderen van Python. Het werd eind jaren 80 gemaakt door Guido van Rossum in Nederland. Het werd gemaakt als een opvolger van de ABC-taal. Zijn naam is "Python" omdat wanneer
QR-codescanner met OpenCV in Python: 7 stappen
QR-codescanner met OpenCV in Python: in de wereld van vandaag zien we dat QR-code en streepjescode bijna overal worden gebruikt, van productverpakkingen tot online betalingen en tegenwoordig zien we QR-codes zelfs in restaurants om het menu te zien. Dus nee betwijfel of het nu de grote gedachte is. Maar heb je ooit
Python gebruiken om niet-Engelse toetsenbordindelingen te leren: 8 stappen
Python gebruiken om niet-Engelse toetsenbordindelingen te leren: Hallo, ik ben Julien! Ik ben een student computerwetenschappen en vandaag ga ik je laten zien hoe je Python kunt gebruiken om jezelf de toetsenbordindeling van een niet-Engelse taal aan te leren. Veel talen leren tegenwoordig online, en één ding kunnen mensen begrijpen
Caesar Cipher-programma in Python: 4 stappen
Caesar Cipher-programma in Python: De Caesar Cipher is een oude en veelgebruikte code die gemakkelijk te coderen en te decoderen is. Het werkt door de letters van het alfabet te verschuiven om een geheel nieuw alfabet te creëren (ABCDEF zou meer dan 4 letters kunnen verschuiven en zou EFGHIJ worden). Caesar C