Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Tento projekt je o vytvorení vlastného obrazového procesora kódovaného v pythone pre môj modul GET1033 Exploring Computational Media Literacy. Používateľ bude najskôr musieť zadať vlastnú fotografiu a potom vybrať požadované filtre. Vytvoril som 9 filtrov, ktorými sú: Zobraziť vstupný obrázok, Zrkadliť, Zalepiť za priečnik, Za priehľadný pruh, Kruhový obrázok, Rozmazanie, Otočenie, Zmena farby a Photoshop. Po výbere jedného z nich bude mať výstupný obrázok efekty. Ako je znázornené na obrázku, je to filter na zmenu farby, kde na obrázku zisťujem pixely zelenej farby a prevádzam ich do ružovej farby.
Krok 1: Proces jeho výroby
Krok 1: Stiahnite si Python odtiaľto!
Krok 2: Kódujte to!
Najprv som importoval niekoľko balíkov s vopred kódovanou funkciou, ktoré sú k dispozícii na použitie v kóde. Balíky, ktoré som importoval, sú Scipy, Matplot a Numpy.
Pre Scipy som importoval Miscellaneous Routines (MISC) a Multi-dimentional Image Processing (NDIMAGE). MISC slúži na čítanie a ukladanie obrázku, zatiaľ čo NDIMAGE má vykonávať gaussovský filter a otáčať.
Pre Matplotlib je to knižnica na vykresľovanie grafov v Pythone, ktorá poskytuje rozhranie podobné MATLAB.
Pre Numpy je to knižnica, ktorá môže podporovať veľké viacrozmerné polia a matice. Numpy je dôležitý, pretože mi umožňuje efektívne upravovať pole červenej, zelenej a modrej (RGB) obrázkov pri ich pridávaní alebo násobení. Napríklad A = [0, 1, 2] a s prítomnosťou Numpy, A*2 = [0, 2, 4] namiesto toho, aby sme dostali A*2 = [0, 1, 2, 0, 1, 2].
Keď pracujem na filtri na zmenu farby, pokúšam sa previesť zelené vlasy dievčaťa na ružovú. Čo som teda urobil, bolo zistiť zelené pixely na obrázku a vynásobiť ich (2, 0,2, 0,8). Preto namiesto skutočných zelených vlasov získam dievča s ružovými vlasmi.
Pokiaľ ide o Photoshop, pokúšam sa nahradiť zelené pozadie na obrázku Avengers obrázkom NUS. To, čo som urobil, bolo vynásobením 0 všetkých zelených pixelov a potom pridaním pixelov obrázku NUS k zeleným pixelom. Vďaka tomu mi potom vznikne obrázok Avengers v NUS.
Priložil som tiež svoj kód na GitHub a môžete si ho stiahnuť tu!
Krok 2: Ako to funguje?
Vývojový diagram ukazuje, ako funguje celý kód!
1. Najprv je používateľ vyzvaný, aby zadal obrázok podľa vlastného výberu. 2. Potom sa zobrazí zoznam filtrov, z ktorých si používateľ môže vybrať. 3. Ak používateľ zadá „1“až „9“, obrázok bude spracovaný a vygenerovaný podľa každého filtra. Ak používateľ zadá „R“, celý program sa vynuluje a používateľ bude vyzvaný, aby znova nahral obrázok. Ak používateľ zadá „Q“, program potom opustí slučku.
Krok 3: Čo to robí?
V tomto projekte je celkom 9 filtrov, ktoré som vytvoril, a to
1. Zobraziť vstupný obrázok - Ak chcete zobraziť odoslaný obrázok
2. Zrkadlový obraz - Odrazená duplikácia objektu, ale obrátená v smere
3. Umiestniť za pruh - Vkladanie čiernych zvislých pruhov so šírkou a rozstupom 50 pixelov.
4. Za priehľadným pruhom - Vloženie priehľadných zvislých pruhov so šírkou a rozstupom rovnými 50 pixelom
5. Kruhový obrázok - Vytvorenie kruhu v strede obrázku
6. Rozostrenie - Ak chcete rozmazať obrázok
7. Rotácia - Ak chcete otočiť obrázok o 45 stupňov
8. Zmena farby - Ak chcete zmeniť zelenú farbu na ružovú
9. Photoshop - Ak chcete zmeniť časť obrázku na iný obrázok
Krok 4: Prečo som to urobil?
Predtým som zvedavý, ako Instagram a Snapchat prišli s filtrami pre obrázky, vďaka ktorým boli také zaujímavé. Po prednáške a tutoriáli o rozšírenej realite som chcel urobiť niečo, čo s tým súvisí, ale rád by som začal od základného, ktorým je spracovanie obrazu, pretože som slabý v programovaní a rád by som sa naučil kódovať v Pythone.
Krok 5: Vylepšenia a čo urobia budúce verzie?
Jedným z vylepšení tohto projektu je vytvorenie vlastných filtrov tváre v živých videách pomocou Pythonu. Pokúsil som sa to kódovať, ale žiadny z nich som nemohol dosiahnuť kvôli nedostatku znalostí programovania a časového obmedzenia. Okrem toho môže byť obrazový procesor „múdrejší“, keď dokáže automaticky detekovať farby a meniť iba požadované časti. Existuje jeden čas, keď sa pokúšam zmeniť čierne vlasy človeka na inú farbu. Nakoniec zmením farbu očí a vlasov na modrú, takže obraz vyzerá veľmi divne. Dúfam, že sa mi podarí vytvoriť si vlastnú tvár