Sadržaj:

GET1033 Procesor kodirane slike Python: 5 koraka
GET1033 Procesor kodirane slike Python: 5 koraka

Video: GET1033 Procesor kodirane slike Python: 5 koraka

Video: GET1033 Procesor kodirane slike Python: 5 koraka
Video: CS50 2013 - Week 1, continued 2024, Novembar
Anonim
GET1033 Procesor kodirane slike Python
GET1033 Procesor kodirane slike Python

Ovaj projekt govori o stvaranju vlastitog procesora slike kodiranog pythonom za moj modul, GET1033 Exploring Computational Media Literacy. U početku će korisnik morati unijeti vlastitu fotografiju, a zatim odabrati filtre koje želi. Napravio sam 9 filtera koji prikazuju: Ulazna slika, Ogledalo, Stavi iza trake, Stavi iza prozirne trake, Kružna slika, Zamućenje, Rotacija, Promjena boje i Photoshop. Nakon odabira jednog od njih, izlazna slika će imati efekte. Kao što je prikazano na slici, to je filter za promjenu boje gdje otkrivam piksele zelene boje na slici i pretvaram ih u ružičastu boju.

Korak 1: Proces stvaranja

Proces stvaranja
Proces stvaranja

Korak 1: Preuzmite Python odavde!

Korak 2: Kodirajte ga!

Prije svega, uvezao sam nekoliko paketa sa unapred kodiranom funkcijom dostupnom za upotrebu u kodu. Paketi koje sam uvezao su Scipy, Matplot i Numpy.

Za Scipy sam uvezao razne rutine (MISC) i višedimenzionalnu obradu slika (NDIMAGE). MISC služi za čitanje i spremanje slike, dok je NDIMAGE za izvođenje gausovog filtra i rotiranje.

Za Matplotlib, to je biblioteka za iscrtavanje grafa u Pythonu koja pruža sučelje nalik MATLAB-u.

Za Numpy je to biblioteka koja podržava velike, višedimenzionalne nizove i matrice. Numpy je važan jer mi omogućuje efikasno uređivanje niza crvenih, zelenih i plavih (RGB) slika kada dodajem ili množim niz. Na primjer, A = [0, 1, 2] i uz prisustvo Numpyja, A*2 = [0, 2, 4] umjesto dobivanja A*2 = [0, 1, 2, 0, 1, 2].

Kad radim na filteru za promjenu boje, pokušavam pretvoriti zelenu kosu djevojčice u ružičastu boju. Dakle, ono što sam uradio je da otkrijem piksele zelene boje na slici i pomnožim ih sa (2, 0.2, 0.8). Tako ću dobiti djevojku ružičaste kose umjesto stvarne zelene kose.

Što se tiče Photoshopa, pokušavam zelenu pozadinu na slici Avengers zamijeniti slikom NUS -a. Dakle, ono što sam uradio je bilo množenje 0 na sve zelene piksele, a zatim dodavanje piksela slike NUS -a u zelene piksele. Tada ću dobiti sliku Osvetnika u NUS -u.

Priložio sam i svoj kod na GitHub i možete ga preuzeti ovdje!

Korak 2: Kako to funkcionira?

Kako radi?
Kako radi?

Dijagram toka je priložen kako bi pokazao kako cijeli kôd radi!

1. Prvo se od korisnika traži da unese sliku po svom izboru. 2. Tada će se prikazati lista filtera koje korisnik može izabrati. 3. Ako je korisnik unio '1' do '9', slika će se obraditi i ispisati prema svakom filteru.4. Ako je korisnik unio 'R', cijeli program će se poništiti i od korisnika će se tražiti da ponovo učita sliku.5. Ako je korisnik unio 'Q', program će tada izaći iz petlje.

Korak 3: Šta radi?

U ovom projektu postoji ukupno 9 filtera koje sam stvorio, naime

1. Prikaži ulaznu sliku - Za prikaz slike koja je učitana

2. Zrcalna slika - Reflektirano dupliranje objekta, ali je obrnuto u smjeru

3. Stavi iza trake - Umetanje crnih okomitih traka širine i razmaka 50 piksela.

4. Stavite iza prozirne šipke - Umetanje prozirnih okomitih šipki širine i razmaka jednakih 50 piksela

5. Slika kruga - Da biste napravili krug u sredini slike

6. Zamućivanje - Za zamućivanje slike

7. Rotacija - Za rotiranje slike za 45 stepeni

8. Promjena boje - Za promjenu zelene boje u ružičastu

9. Photoshop - Za promjenu dijela slike drugom slikom

Korak 4: Zašto sam uspio?

Ranije me zanimalo kako su Instagram i Snapchat došli do filtera za slike koji su ih učinili tako zanimljivim. Nakon predavanja i vodiča o proširenoj stvarnosti, htio sam učiniti nešto u vezi s tim, ali htio bih krenuti od osnove, a to je obrada slika jer sam slab u programiranju i želio bih naučiti Python kodiranje.

Korak 5: Poboljšanja i šta će učiniti buduće verzije?

Jedno od poboljšanja ovog projekta je stvaranje vlastitih filtera za lice u video zapisima uživo pomoću Pythona. Pokušao sam to kodirati, ali nisam uspio postići ništa zbog nedostatka znanja o programiranju i vremenskog ograničenja. Osim toga, procesor slike može biti „pametniji“gdje može automatski otkriti boje i promijeniti samo dijelove koje želimo. U jednom trenutku pokušavam promijeniti crnu kosu neke osobe u drugu boju. Na kraju sam promijenio boju očiju i kose u plavu, zbog čega slika izgleda vrlo čudno. Nadam se da ću uspjeti stvoriti vlastito lice

Preporučuje se: