Kazalo:

GET1033 Procesor kodirane slike Python: 5 korakov
GET1033 Procesor kodirane slike Python: 5 korakov

Video: GET1033 Procesor kodirane slike Python: 5 korakov

Video: GET1033 Procesor kodirane slike Python: 5 korakov
Video: CS50 2013 - Week 1, continued 2024, November
Anonim
GET1033 Procesor za kodiranje slik Python
GET1033 Procesor za kodiranje slik Python

Ta projekt govori o ustvarjanju lastnega procesorja slike, kodiranega s pythonom, za moj modul, GET1033 Exploring Computational Media Literacy. Uporabnik bo najprej moral vnesti svojo fotografijo in nato izbrati filtre, ki jih želi. Ustvaril sem 9 filtrov, ki so: Prikaz vhodne slike, Ogledalo, Postavitev za palico, Postavitev za prozorno vrstico, Slika v krogu, Zameglitev, Rotacija, Spreminjanje barve in Photoshop. Ko izberete eno od njih, bo imela izhodna slika učinke. Kot je prikazano na sliki, je filter za spreminjanje barve, kjer zaznam zelene barvne pike na sliki in jih pretvorim v rožnato barvo.

1. korak: Postopek izdelave

Postopek izdelave
Postopek izdelave

Korak: Prenesite Python od tukaj!

2. korak: kodirajte!

Najprej sem uvozil nekaj paketov s predkodirano funkcijo, ki je na voljo za uporabo v kodi. Uvoženi paketi so Scipy, Matplot in Numpy.

Za Scipy sem uvozil razne rutine (MISC) in večdimenzionalno obdelavo slik (NDIMAGE). MISC je za branje in shranjevanje slike, medtem ko je NDIMAGE za izvajanje gaussovega filtra in vrtenje.

Za Matplotlib je knjižnica za risanje grafa v Pythonu, ki ponuja vmesnik, podoben MATLAB-u.

Za Numpy je knjižnica, ki lahko podpira velike, večdimenzionalne matrike in matrike. Numpy je pomemben, ker mi omogoča učinkovito urejanje matrike rdeče, zelene in modre (RGB) slik, ko matriko dodajam ali množim. Na primer, A = [0, 1, 2] in s prisotnostjo Numpyja, A*2 = [0, 2, 4] namesto da bi dobili A*2 = [0, 1, 2, 0, 1, 2].

Ko delam na filtru za spremembo barve, poskušam spremeniti zelene lase deklice v rožnato barvo. Torej sem odkril piksle zelene barve na sliki in jih pomnožil z (2, 0,2, 0,8). Tako bom namesto dejanskih zelenih las dobil dekle roza las.

Kar zadeva Photoshop, poskušam zeleno ozadje na sliki Avengers zamenjati s sliko NUS. Torej sem pomnožil 0 na vse zelene slikovne pike in nato zelenim pikslom dodal slikovne pike slike NUS. Potem bom dobil sliko Avengers v NUS.

Svojo kodo sem priložil tudi na GitHub in jo lahko prenesete tukaj!

2. korak: Kako deluje?

Kako deluje?
Kako deluje?

Diagram poteka je priložen in prikazuje, kako deluje celotna koda!

1. Najprej mora uporabnik vnesti izbrano sliko. 2. Nato se prikaže seznam filtrov, med katerimi lahko uporabnik izbira. 3. Če je uporabnik vnesel od 1 do 9, bo slika obdelana in prikazana v skladu z vsakim filtrom. Če je uporabnik vnesel 'R', bo celoten program ponastavljen in uporabnik bo pozvan, naj znova naloži sliko. Če je uporabnik vnesel 'Q', bo program nato zapustil zanko.

3. korak: Kaj počne?

V tem projektu je skupaj ustvarjenih 9 filtrov, in sicer

1. Pokaži vhodno sliko - Če želite prikazati naloženo sliko

2. Zrcalna slika - Odsevno podvajanje predmeta, vendar je obrnjeno v smeri

3. Postavi za palico - Vstavite črne navpične črte s širino in razmikom 50 pik.

4. Postavite za prosojno palico - Vstavite prozorne navpične palice s širino in razmikom 50 pik

5. Slika kroga - Če želite narediti krog na sredini slike

6. Zameglitev - Za zameglitev slike

7. Rotation (Zavrtite sliko) za 45 stopinj

8. Spreminjanje barve - Za spremembo zelene barve v rožnato

9. Photoshop - spremenite del slike z drugo sliko

4. korak: Zakaj mi je uspelo?

Pred tem me zanima, kako sta Instagram in Snapchat pripravila filtre za slike, zaradi katerih so bile tako zanimive. Po predavanju in vadnici o razširjeni resničnosti sem želel narediti nekaj v zvezi s tem, vendar bi rad začel iz osnove, ki je obdelava slik, ker sem šibek v programiranju in bi se rad naučil kodiranja Python.

5. korak: Izboljšave in kaj bodo naredile prihodnje različice?

Ena od izboljšav tega projekta je ustvarjanje lastnih obraznih filtrov v videoposnetkih v živo z uporabo Pythona. Poskušal sem to kodirati, vendar zaradi pomanjkanja programskega znanja in časovne omejitve nisem mogel doseči nobenega od njih. Razen tega je lahko slikovni procesor "pametnejši", kjer lahko samodejno zazna barve in spremeni samo dele, ki jih želimo. Nekoč poskušam spremeniti črne lase osebe v drugo barvo. Na koncu sem spremenil barvo oči in las v modro, zaradi česar je slika videti zelo čudno. Upam, da si bom lahko ustvarila svoj obraz

Priporočena: