Sisällysluettelo:

GET1033 Python -koodattu kuvanprosessori: 5 vaihetta
GET1033 Python -koodattu kuvanprosessori: 5 vaihetta

Video: GET1033 Python -koodattu kuvanprosessori: 5 vaihetta

Video: GET1033 Python -koodattu kuvanprosessori: 5 vaihetta
Video: GET1033 Final Project Video 2024, Marraskuu
Anonim
GET1033 Python -koodattu kuvanprosessori
GET1033 Python -koodattu kuvanprosessori

Tämä projekti koskee oman python -koodatun kuvanprosessorin luomista moduulilleni GET1033 Exploring Computational Media Literacy. Aluksi käyttäjän on syötettävä oma valokuva ja valittava haluamansa suodattimet. Olen luonut yhdeksän suodatinta, jotka ovat: Näytä syöttökuva, Peili, Laita palkin taakse, Laita läpinäkyvän palkin taakse, Ympyräkuva, Hämärtyminen, Kierto, Värin vaihtaminen ja Photoshop. Kun olet valinnut yhden niistä, tulostuksessa on tehosteita. Kuten kuvassa näkyy, se on värin vaihtosuodatin, jossa havaitsen kuvan vihreät pikselit ja muutan ne vaaleanpunaisiksi.

Vaihe 1: Valmistusprosessi

Valmistusprosessi
Valmistusprosessi

Vaihe 1: Lataa Python täältä!

Vaihe 2: Koodaa se!

Ensinnäkin toin koodiin käytettäväksi muutamia paketteja, joissa oli esikoodattu toiminto. Tuomani paketit ovat Scipy, Matplot ja Numpy.

Scipyn osalta tuon Miscellaneous Routines (MISC) ja moniulotteinen kuvankäsittely (NDIMAGE). MISC on kuvan lukeminen ja tallentaminen, kun taas NDIMAGE suorittaa gaussisuodattimen ja kiertää.

Matplotlibille se on kirjasto graafin piirtämiseen Pythonissa, joka tarjoaa MATLAB-kaltaisen käyttöliittymän.

Numpylle se on kirjasto, joka voi tukea suuria, moniulotteisia matriiseja ja matriiseja. Numpy on tärkeä, koska sen avulla voin muokata kuvien punaisen, vihreän ja sinisen (RGB) matriisia tehokkaasti, kun lisään tai kerron matriisia. Esimerkiksi A = [0, 1, 2] ja Numpy -läsnä ollessa A*2 = [0, 2, 4] A*2 = [0, 1, 2, 0, 1, 2] sijaan.

Kun työskentelen värinvaihtosuodattimen parissa, yritän muuttaa tytön vihreät hiukset vaaleanpunaiseksi. Niinpä tein havaita kuvan vihreät pikselit ja kertoa ne (2, 0,2, 0,8). Näin saan vaaleanpunaisen hiuksen tytön varsinaisten vihreiden hiusten sijaan.

Photoshopin osalta yritän korvata Avengers -kuvan vihreän taustan NUS -kuvalla. Joten, mitä tein, kerroin 0 kaikille vihreille pikseleille ja lisäsin sitten NUS -kuvan pikselit vihreisiin pikseleihin. Näin saan kuvan Avengersista NUS: ssa.

Liitin myös koodini GitHubiin ja voit ladata sen täältä!

Vaihe 2: Kuinka se toimii?

Kuinka se toimii?
Kuinka se toimii?

Liitteenä on vuokaavio, joka näyttää kuinka koko koodi toimii!

1. Ensin käyttäjää kehotetaan syöttämään haluamasi kuva. 2. Sitten se näyttää luettelon suodattimista, joista käyttäjä voi valita. 3. Jos käyttäjä on syöttänyt 1 - 9, kuva käsitellään ja tulostetaan kunkin suodattimen mukaan. Jos käyttäjä kirjoitti 'R', koko ohjelma nollataan ja käyttäjää pyydetään lataamaan kuva uudelleen.5. Jos käyttäjä kirjoitti 'Q', ohjelma poistuu silmukasta.

Vaihe 3: Mitä se tekee?

Tässä projektissa olen luonut yhteensä 9 suodatinta, nimittäin

1. Näytä syöttökuva - Voit näyttää ladatun kuvan

2. Peilikuva - Heijastunut kohteen päällekkäisyys, mutta se on päinvastainen

3. Laita palkin taakse - Lisää mustat pystysuorat palkit, joiden leveys ja väli ovat 50 pikseliä.

4. Laita läpinäkyvän palkin taakse - Aseta läpinäkyvät pystysuorat palkit, joiden leveys ja väli ovat 50 pikseliä

5. Ympyräkuva - Voit tehdä ympyrän kuvan keskelle

6. Epäterävyys - Voit sumentaa kuvan

7. Kierto - Voit kiertää kuvaa 45 astetta

8. Värin vaihtaminen - Voit muuttaa vihreän värin vaaleanpunaiseksi

9. Photoshop - Kuvan osan vaihtaminen toiseen kuvaan

Vaihe 4: Miksi onnistuin?

Aiemmin olen utelias siitä, miten Instagram ja Snapchat keksivät suodattimia kuville, jotka tekivät niistä niin mielenkiintoisia. Lisätty todellisuutta käsittelevän luennon ja opetusohjelman jälkeen halusin tehdä jotain siihen liittyvää, mutta haluaisin aloittaa perusasiasta, joka on kuvankäsittely, koska olen heikko ohjelmoinnissa ja haluaisin oppia Python -koodauksen.

Vaihe 5: Parannuksia ja mitä tulevat versiot tekevät?

Yksi tämän projektin parannuksista on luoda omat kasvosuodattimet live -videoihin Pythonin avulla. Yritin koodata tätä, mutta en onnistunut saavuttamaan mitään niistä ohjelmointitiedon puutteen ja aikarajoitusten vuoksi. Sen lisäksi kuvaprosessori voi olla "älykkäämpi", jossa se voi automaattisesti tunnistaa värit ja muuttaa vain haluamiamme osia. Kerran yritän muuttaa ihmisen mustat hiukset toiseen väriin. Lopulta muutan sekä silmien että hiusten värin siniseksi, mikä saa kuvan näyttämään erittäin oudolta. Toivon, että pystyn luomaan omat kasvoni

Suositeltava: